begin process at 2012 05 27 19:40:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Divers

 > 

Débutant(e)

 > 

Problème animation chute de neige en boucle


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

Problème animation chute de neige en boucle

vendredi 19 novembre 2010 à 03:55:00 | Problème animation chute de neige en boucle

mavrick117

Bonjour,

Etant complètement novice dans le codage AS3, j’ai donc utilisé le code suivant tirer d’un tutoriel.
Code ActionScript :
//Nbr de flocon à générer
var quantite:uint=3000;
//Taille de la scene
var LargeurScene:uint=stage.stageWidth;
var HauteurScene:uint=stage.stageHeight;
for (var i:uint = 0; i<quantite; i++) {
//création du nouveau flocon
var FloconNouveau:Flocon = new Flocon();
//Propriété nom
FloconNouveau.name='Flocon'+i;
modifierAspect(FloconNouveau,true);
//La fonction onEnterFrame simule le déplacement de la tête de lecture
FloconNouveau.addEventListener(Event.ENTER_FRAME,animation);
}
//Fonction pour modifier l'aspect des flocons
function modifierAspect(FloconActuel:MovieClip,origine:Boolean):void {
//Positionnement sur la scene et dimension
with (FloconActuel) {
x=Math.random()*LargeurScene;
//si true donc début de l'animation le flocon apparait n'importe ou verticalement
if (origine) {
y=Math.random()*HauteurScene;
} else {
//si false en cours d'animation le flocon demarre en haut de l'écran
y=0;
}
/*scaleX scaleY alpha prennent des valeurs de 0 a 1 en AS3 */
scaleX=scaleY=alpha=.1+Math.random()*.8;
}
/*Gestion du déplacement pour chaque flocon
La vitesse est déterminé au hasard*/
FloconActuel.VitesseVerticale=2+Math.random()*5;
//Affiche le flocon sur la scene
addChild(FloconActuel);
}
//fontion pour animer les flocons
function animation(NomParticule:Event):void {
//Recupere le nom du flocon
var FloconActuel:MovieClip=NomParticule.currentTarget as MovieClip;
//trace(FloconActuel.name);
FloconActuel.y+=FloconActuel.VitesseVerticale;
//si nous atteignons le bas de la scene
if (FloconActuel.y>=HauteurScene) {
modifierAspect(FloconActuel,false);
}
}


Le problème que je rencontre survient lorsque le swf (paramétré pour une lecture en boucle) se relance, c&#8217;est-à-dire au niveau du départ du second cycle.

Ce problème est un ralentissement considérablement de mon animation donnant l&#8217;impression que mes 6 Go de Ram ne suffisent plus à la faire tourner. Mes clips s&#8217;affichent à la vitesse approximative de 1/s, de même pour la chute de mes flocons.

Je souhaiterai qu&#8217;il n&#8217;y ai aucun changement dans la vitesse d&#8217;exécution de l&#8217;animation après la lecture complète du premier cycle.

En espérant avoir été claire dans la description.

Merci de votre aide.
vendredi 19 novembre 2010 à 04:07:28 | Re : Problème animation chute de neige en boucle

pegase31

Membre Club Administrateur CodeS-SourceS
Bonjour,

En réduisant le nombre de flocons, ça donne le même résultat ?

Peg'
vendredi 19 novembre 2010 à 04:24:42 | Re : Problème animation chute de neige en boucle

mavrick117

j'ai fait le test avec 1000 flocons

je constate une accélération de toute mon animation mais aussi un phénomène qui pourrait s'apparenter à un additionnement à chaque cycle de 1000 flocons. ce qui me donne le bon rythme à partir du 3e cycle.
vendredi 19 novembre 2010 à 11:17:51 | Re : Problème animation chute de neige en boucle

pegase31

Membre Club Administrateur CodeS-SourceS
C'est donc que ton animation est trop lourde pour ton ordinateur.
Flash devient vite une usine à gaz quand on démultiplie les objets animés à l'écran.

Peg'
vendredi 19 novembre 2010 à 12:35:02 | Re : Problème animation chute de neige en boucle

mavrick117

Une usine à gaz ... ça c'est certain
mais je pense qu'elle devient lourde à cause des flocons...

voici deux liens :
1000 flocons
3000 flocons

on observe clairement la multiplication des flocons dans "1000 flocons" et je pense que c'est de la que vient le problème.

J'ai testé ces deux animations sur un mac puissant et après quelques cycles le nombre de flocons ralenti quand même le swf...

une idée pour éviter cette multiplication de flocons après chaque cycles.
vendredi 19 novembre 2010 à 12:38:21 | Re : Problème animation chute de neige en boucle

dj_ouf

Salut

Y'a moyen d'optimiser à fond ton anim...

Déjà, que les flocons soient des sprites au lieu de MovieClip. (flash.display.Sprite dans le panel propriété du symbole dans le biblio), si il ne contient pas d'anim bien-sûr. Ça vire tous les fonctions inutiles.
Ensuite cacheAsbitmap = true en propriété lors de sa création dans dans ton code.

Et je vois aussi qu'a chaque fois qu'un flocon sort de la scène, on refait x fois un Math.random(), ce qui est très pompeux. Pourquoi ne pas stocker leurs position d'origine qu'on re-set tout simplement ?
Code ActionScript :
flocon.x = flocon.initX;
...


Et tu es à quel framerate ? (12 fps, 30 fps ?)

ça n'est pas normal que flash rame à ce point au lancement pour quelques flocons de neige...

Ah je vois voir un gros soucis là :
Un addEventListener(Event.ENTER_FRAME,animation) sur chaque objet flocon ???? ne cherche plus c'est ça aussi.
Il en faut un seul sur le stage, et à l'intérieur tu boucle seulement sur le nombre d'enfants sur la scène, ce qui a pour effet de récupérer chaque flocon.
Code ActionScript :
(for var i:uint=0; i<scene.numChildren; i++) {
     var flocon:Sprite = scene.getChildAt(i) as Sprite;
}
vendredi 19 novembre 2010 à 12:38:40 | Re : Problème animation chute de neige en boucle

mavrick117

les liens ne fonction pas donc :

1000 flocons
www.rmirre.com/1000.html

3000 flocons
www.rmirre.com/3000.html
vendredi 19 novembre 2010 à 12:51:32 | Re : Problème animation chute de neige en boucle

pegase31

Membre Club Administrateur CodeS-SourceS
Moi ce que je peux te conseiller c'est de placer toutes les instances de flocons dans un Vector (cs4 uniquement) et de faire tourner l'enterframe sur le tableau.
Ensuite, tu peux aussi utiliser un bitmap qui prennent moins de place qu'un Sprite niveau gestion de la transparence. (contrairement à l'as2, le bitmap et manipulable directement)

Bref, c'est très simple d'optimiser tout ça.

Peg'
vendredi 19 novembre 2010 à 12:52:12 | Re : Problème animation chute de neige en boucle

pegase31

Membre Club Administrateur CodeS-SourceS
Ah oui, j'oubliais que pour les liens il faut mettre le "http://" devant, sinon ça ne fonctionne pas.

Peg'
vendredi 19 novembre 2010 à 14:53:07 | Re : Problème animation chute de neige en boucle

dj_ouf

Peg' a très bien complété les dernières atuces.. avec tout ça, cela devrait vraiment être fluide!
3000 flocons de 4x4 pixels, c'est vraiment pas le st graal !

Sinon moi sur mon pc, avec ton lien ça tourne déjà pas mal.

1 2

Cette discussion est classée dans : problème, var, animation, uint, chute


Répondre à ce message

Sujets en rapport avec ce message

problème avec les actions [ par pcarnal ] bonjour,voila j'ai crée un menu sur une animation avec des actions sur les différents boutons du menu et cela ne marche pas pourquoi ?voila l'action q Problème de Finalisation d'une animation [ par DglingO ] Salut, g fini une animation en 750 * 425 pixel et donc que je la publie, elle se trouve décentré par rapport a l'ecran et plus petite, savez vous comm Problème avec Un bouton [ par DglingO ] Salut, g fait une animation avec un bouton, lorske l'on appuye sur celui ci, il load une animation d'un porte qui s'ouvre. J'ai creer une autre animat Problème avec loading ! [ par ceeno ] Bonjour à tous,J'ai un problème avec mon loading :Mon animation contient des Flash UI Components, et à ce qu'on m'a dit, ceux ci sont chargés en premi problème de taille de mon animation... [ par metty ] Bonjour chers amis!Je suis en train de développer mon site web en flash et je suis newbie... Voici mon problème, mon animation swf est de 669 Ko! Et p Problème d'anim dans un bouton... [ par bractar ] Bonjour,J'ai une problème avec l'animation d'un bouton :Dans la partie "dessus" du bouton, j'ai une animation à 2 étapes.Quand la souris est dessus, c Problème de menu animé, avec l'animation dans un clip [ par Javampire ] Bonjour, J'ai créé un menu dans un clip. Il se compose d'une première barre, et lorsque la souris passe sur tel endroit, un sous-menu apparaît. Jusque problème d'animation [ par alexgr ] J'ai fait une animation qui utilise le code suivant ://fscommand("allowscale", false);var yP Liens et variable [ par Snickers8883 ] Bonjour, je vous explique mon problème. On m'a demandé de créer un site tt en flash., et j'ai organisé les séquences en 3 parties : -tt d'abord, anima problème d'exportation d'animation flash en .avi [ par lalere ] salut,j'aimerais exporter mon animation flash en .avi et que le fichier .avi généré soit lisible or il ne l'est pas. En fait, j'obtiens une animation


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,624 sec (3)

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