guardian01
Messages postés9Date d'inscriptiondimanche 27 juillet 2003StatutMembreDernière intervention10 juin 2006 17 janv. 2010 à 12:05
Bonjour
J’ai un petit souci avec le tuto
je l'ai testé sa demarre pas mal
j'ai placé un masque temporaire sur les vignettes le temps du chargement, c'est bon!
Depuis un menu j’affiche plusieurs diapos les un après les autres
et la j'ai un gros problème
Le problème est que l’osrque je quitte le premier diapo je n’arrive pas à libérer la mémoire
Au niveau des vignettes
For (var i:int =0 ; i< xmlList.length());i++){
delete Liste_vignette.getChildAt(i); // ne libère pas la mem
System.gc(); // ne libère pas la mem
_spList.removeChildAt(i); // ne libère pas la mem non plus
}
Comment supprimer les xxxx.addEventListener(MouseEvent.
Puisque les objets ne sont identifiés que à ma connaissance par « getChildAt(i) »
A bientôt.
Merci de vos réponses.
Guardian
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 27 oct. 2009 à 01:45
sans vouloir être vexant, il y a déjà mieux sur le site ... il suffit de regarder les sources déjà dispo ici qui sont moins bugguées et plus fonctionnelles.
Peg'
cs_tatort
Messages postés8Date d'inscriptionmardi 31 mars 2009StatutMembreDernière intervention20 janvier 2010 26 oct. 2009 à 21:58
bien bien vous êtes mignon les enfants proposez mieux les gars !!!
On attend !!!
Merci pour ta source en tous cas
blinkylucie
Messages postés9Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention 7 août 2009 4 août 2009 à 10:28
Mouai, pas propre et personnellement j'aurai aimer un petit aperçu dans le descriptif!
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 24 juil. 2009 à 20:28
@Orange73:
ton code est crade:
-Tu oublis d'efface le background avant de le re-dessiner ce qui va prendre de plus en plus de mémoire et charger le CPU pour l'affichage inutilement.
-Tu ajoute un child à la scène à chaque redimentionnement alors qu'il ne faut l'ajouter qu'une fois.
-La même chose peut tenir avec 1 fonction en moins.
riderdav
Messages postés4Date d'inscriptionvendredi 19 septembre 2008StatutMembreDernière intervention24 juillet 2009 24 juil. 2009 à 09:34
" 1/ "j'ai déjà réalisé l'affichage des images avec l'outil Bitmap."..
ou vois-tu cela dans ta source ? "
J'ai dis que j'avais fait ça, mais en aucun cas j'ai dit que je l'avais ajouté dans la source, ce que je n'ait pas fait justement car ce n'est pas encore tout à fait au point.
Mais en tout cas merci pour tes conseils.
A+
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 24 juil. 2009 à 09:14
ou "Pattern" est l'identifiant de ton bitmap dans la biblio.
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 24 juil. 2009 à 09:13
Hello,
1/ "j'ai déjà réalisé l'affichage des images avec l'outil Bitmap."..
ou vois-tu cela dans ta source ?
2/ Tu aurais pu faire une classe ou fonction qui permettrai de addchilder le bitmap de la biblio afin de faire un background propre qui prend toute la scene meme en redimensionnant. je suis gentil, voici un exemple :) :
amanitevitriol
Messages postés2Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention23 juillet 2009 23 juil. 2009 à 18:49
merci infiniment!!
riderdav
Messages postés4Date d'inscriptionvendredi 19 septembre 2008StatutMembreDernière intervention24 juillet 2009 23 juil. 2009 à 18:08
Voilà j'ai rajouté la version CS3 dans l'archive.
Quand aux autres, merci pour vos conseils, j'ai déjà réalisé l'affichage des images avec l'outil Bitmap.
Pour le bug que tu disais Pèg', il se fait lorsqu'on applique deux TweenLite sur les mêmes objets, à part enlever un des deux TweenLite, je ne vois pas comment corriger cela, mais j'y réflechi =).
A+
amanitevitriol
Messages postés2Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention23 juillet 2009 23 juil. 2009 à 17:33
bonjour, je trouve ta galerie super! serait-il possible d'avoir une version cs3?
merci par avance!
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 22 juil. 2009 à 16:27
Hello,
Comme le dit Peg', pourquoi dans ta fonction affichImage(); tu recreer un loader pour chaque images car :
1/ tu les a déjà chargées a la base en full size.
2/ tu recrée un loader pour chaque image alors que tu dois en afficher qu'une seule...
Sinon il serait bien de creer une fonction dispose(); afin de supprimer toutes les references et ainsi permettre aux users de l'integrer dans leurs sites flash...
A+
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 22 juil. 2009 à 13:18
Il y a un énorme bug lors de l'arrivée des photos si la souris se trouve sur la ligne : les photos se bloquent et un énorme décalage avec superposition se fait ...
Tu Crées autant de Loader qu'il y a d'images, or il n'y a pas de miniatures dans tes images, ce qui veut dire que tu as déjà chargé les images grandes tailles dans un loader que tu as affiché dans une vignette en bas de l'écran. Pourquoi les recharges-tu au lieu de les afficher tout simplement ?
Tu doubles l'espace mémoire utilisé inutilement sans parler du temps de chargement et de la démultiplication des évènements à gérer.
Sinon niveau structurel, mise à part la classe "Main.as" qui contient tout, il n'y a pas grand choses à dire.
On sent encore les restes d'AS2, le code est trop linéaire et tu n'utilises pas assez les classes custom pour profiter de leurs puissance. C'est de l'évènementiel, pas vraiment de la POO ... dommage.
Et encore une fois, l'utilisation de la classe TweenLite n'est pas justifiée ici, tu aurais pu simplement utiliser celle dispo déjà dans Flash.
Ce que tu pourrais faire :
- Placer toutes tes données de base (taille d'image max, vignette, etc ...) dans le XML, ce qui rendrait la galerie bien plus dynamique
- Créer une classe statique permettant de gérer le données du xml et de transmettre les infos données, ainsi qu'une classe statis qui chargerait les images.
- Charger les images une par une dans un Array/Vector. et les appeler quand tu en as besoin pour les afficher en grand à partir de la classe statique précédemment citée.
- Créer de vrais vignettes bitmap avec l'outil Matrix afin de ne pas avoir à déplacer des dizaines d'images en 800x600 réduites, ce qui lacherais un peu de CPU.
- La gestion de la taille de l'animation pour afficher/placer tes images/vignettes aurait aussi été un plus, car tout le monde n'a pas forcément envie d'utiliser une galerie de 900x700. Un mode Rezise en temps réel pourrait aussi être sympa.
C'est une bonne approche de l'AS3 et tu as bien compris les principes d'évènements. Reste maintenant à vraiment tirer partie de toute la puissance dispo en AS3 et de voir à bien gérer tout ça.
Peg'
riderdav
Messages postés4Date d'inscriptionvendredi 19 septembre 2008StatutMembreDernière intervention24 juillet 2009 22 juil. 2009 à 08:45
Cette galerie à été développée avec l'IDE de Flash CS4, demandez-moi si vous voulez la version en CS3.
17 janv. 2010 à 12:05
J’ai un petit souci avec le tuto
je l'ai testé sa demarre pas mal
j'ai placé un masque temporaire sur les vignettes le temps du chargement, c'est bon!
Depuis un menu j’affiche plusieurs diapos les un après les autres
et la j'ai un gros problème
Le problème est que l’osrque je quitte le premier diapo je n’arrive pas à libérer la mémoire
Au niveau des vignettes
For (var i:int =0 ; i< xmlList.length());i++){
delete Liste_vignette.getChildAt(i); // ne libère pas la mem
System.gc(); // ne libère pas la mem
_spList.removeChildAt(i); // ne libère pas la mem non plus
}
Comment supprimer les xxxx.addEventListener(MouseEvent.
Puisque les objets ne sont identifiés que à ma connaissance par « getChildAt(i) »
A bientôt.
Merci de vos réponses.
Guardian
27 oct. 2009 à 01:45
Peg'
26 oct. 2009 à 21:58
On attend !!!
Merci pour ta source en tous cas
4 août 2009 à 10:28
24 juil. 2009 à 20:28
ton code est crade:
-Tu oublis d'efface le background avant de le re-dessiner ce qui va prendre de plus en plus de mémoire et charger le CPU pour l'affichage inutilement.
-Tu ajoute un child à la scène à chaque redimentionnement alors qu'il ne faut l'ajouter qu'une fois.
-La même chose peut tenir avec 1 fonction en moins.
----->
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
function tileBG(e:Event):void{
var g:Graphics=title.graphics;
g.clear();
g.beginBitmapFill(new Pattern(0, 0));
g.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
g.endFill();
}
addChild(tile);
tileBG(null);
stage.addEventListener(Event.RESIZE, titleBG);
---------------
Stef
24 juil. 2009 à 09:34
ou vois-tu cela dans ta source ? "
J'ai dis que j'avais fait ça, mais en aucun cas j'ai dit que je l'avais ajouté dans la source, ce que je n'ait pas fait justement car ce n'est pas encore tout à fait au point.
Mais en tout cas merci pour tes conseils.
A+
24 juil. 2009 à 09:14
ou "Pattern" est l'identifiant de ton bitmap dans la biblio.
24 juil. 2009 à 09:13
1/ "j'ai déjà réalisé l'affichage des images avec l'outil Bitmap."..
ou vois-tu cela dans ta source ?
2/ Tu aurais pu faire une classe ou fonction qui permettrai de addchilder le bitmap de la biblio afin de faire un background propre qui prend toute la scene meme en redimensionnant. je suis gentil, voici un exemple :) :
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, reTile);
var tile:Sprite = new Sprite();
function tileBG():void{
tile.graphics.beginBitmapFill(new Pattern(0, 0));
tile.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
tile.graphics.endFill();
addChild(tile);
}
function reTile(event:Event):void{
tileBG();
}
tileBG();
23 juil. 2009 à 18:49
23 juil. 2009 à 18:08
Quand aux autres, merci pour vos conseils, j'ai déjà réalisé l'affichage des images avec l'outil Bitmap.
Pour le bug que tu disais Pèg', il se fait lorsqu'on applique deux TweenLite sur les mêmes objets, à part enlever un des deux TweenLite, je ne vois pas comment corriger cela, mais j'y réflechi =).
A+
23 juil. 2009 à 17:33
merci par avance!
22 juil. 2009 à 16:27
Comme le dit Peg', pourquoi dans ta fonction affichImage(); tu recreer un loader pour chaque images car :
1/ tu les a déjà chargées a la base en full size.
2/ tu recrée un loader pour chaque image alors que tu dois en afficher qu'une seule...
Sinon il serait bien de creer une fonction dispose(); afin de supprimer toutes les references et ainsi permettre aux users de l'integrer dans leurs sites flash...
A+
22 juil. 2009 à 13:18
Tu Crées autant de Loader qu'il y a d'images, or il n'y a pas de miniatures dans tes images, ce qui veut dire que tu as déjà chargé les images grandes tailles dans un loader que tu as affiché dans une vignette en bas de l'écran. Pourquoi les recharges-tu au lieu de les afficher tout simplement ?
Tu doubles l'espace mémoire utilisé inutilement sans parler du temps de chargement et de la démultiplication des évènements à gérer.
Sinon niveau structurel, mise à part la classe "Main.as" qui contient tout, il n'y a pas grand choses à dire.
On sent encore les restes d'AS2, le code est trop linéaire et tu n'utilises pas assez les classes custom pour profiter de leurs puissance. C'est de l'évènementiel, pas vraiment de la POO ... dommage.
Et encore une fois, l'utilisation de la classe TweenLite n'est pas justifiée ici, tu aurais pu simplement utiliser celle dispo déjà dans Flash.
Ce que tu pourrais faire :
- Placer toutes tes données de base (taille d'image max, vignette, etc ...) dans le XML, ce qui rendrait la galerie bien plus dynamique
- Créer une classe statique permettant de gérer le données du xml et de transmettre les infos données, ainsi qu'une classe statis qui chargerait les images.
- Charger les images une par une dans un Array/Vector. et les appeler quand tu en as besoin pour les afficher en grand à partir de la classe statique précédemment citée.
- Créer de vrais vignettes bitmap avec l'outil Matrix afin de ne pas avoir à déplacer des dizaines d'images en 800x600 réduites, ce qui lacherais un peu de CPU.
- La gestion de la taille de l'animation pour afficher/placer tes images/vignettes aurait aussi été un plus, car tout le monde n'a pas forcément envie d'utiliser une galerie de 900x700. Un mode Rezise en temps réel pourrait aussi être sympa.
C'est une bonne approche de l'AS3 et tu as bien compris les principes d'évènements. Reste maintenant à vraiment tirer partie de toute la puissance dispo en AS3 et de voir à bien gérer tout ça.
Peg'
22 juil. 2009 à 08:45