Aide - Recherche - Membres - Calendrier
Version complète : galeryConstruct
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 3
black almond
Bien le bonjour.

Voila je voulais si il y avait des gens qui avaient essayé de développer des galeries photos avancées
>> miniatures + grandes au clic, ce dynamiquement (en gros comme dans certains tuto que l'on peux trouver ici d'ailleurs)

Je suis confronté a un petit/gros problème:
J'ai créé une classe qui en gros charge un certain nombre de fichier à tel URl pour les miniatures, les charge, les affiche "resizée", et les masque si y'en a trop...
puis au clic de l'une je charge la grande, et on peux alors naviguer par des flèches une à une depuis les grandes, ou en recherchant parmi les miniatures en "scroll auto"...

La classe marche très bien, les charge correctement, se place correctement etc... seulement je voudrais tenter d'aller plus loin en pouvant modifier dynamiquement les photos a regarder:

Imaginons j'instancie un objet de ma classe >> la galerie apparaît, click miniatures, tout le bouzin... bon ça va jusque là.
Maintenant si je clique sur un bouton, je charge de nouvelles miniatures qui remplacent les présentes...
Et là ça bloque un peu...
J'ai fait normalement en sorte de bien découper mes functions, de manière à ce qu'elles soient liées et que je puisse dans le principe ré-appeler la première pour que tout se remette en route... seulement ça veut pas, ça me charge les nouvelles par dessus les anciennes ou à la suite ou pas du tout icon_lol.gif , et en supprimant les clips contenants les miniatures d'avant, les nouvelles sont bien chargées mais invisibles...

Donc si quelqu'un a développé ce genre de galerie, s'il voulait bien me faire partager son expérience, je lui en serait reconnaissant! ^^

(Par la suite j'ai pensé qu'il suffirait d'appeler une nouvelle instance de classe, et de cacher l'autre..., mais je suis pas sur que se soit très propre icon_lol.gif , a moins que l'on m'affirme le contraire...)
tibibi
Citation (black almond @ Nov 26 2008, 06:36 PM) *
Donc si quelqu'un a développé ce genre de galerie, s'il voulait bien me faire partager son expérience, je lui en serait reconnaissant! ^^

(Par la suite j'ai pensé qu'il suffirait d'appeler une nouvelle instance de classe, et de cacher l'autre..., mais je suis pas sur que se soit très propre icon_lol.gif , a moins que l'on m'affirme le contraire...)


Hello,

Tu fais du unload à tout va ou non? Parce que moi je ferais ça icon_razz.gif

++icon_wink.gif
black almond
Du unload? Non seulement je n'y avait pas pensé, mais en plus ça a l'air intelligent...
C'est par le biais de quelle méthodes?
Et du coup il faut une structure particulière pour la construction de la galery pour faire du unload?

Si tu le désires je peux te passer la classe par le biais des MP si tu veux y jeter un oeil^^
monz
Citation (black almond @ Nov 26 2008, 08:38 PM) *
Du unload? Non seulement je n'y avait pas pensé, mais en plus ça a l'air intelligent...
C'est par le biais de quelle méthodes?
Et du coup il faut une structure particulière pour la construction de la galery pour faire du unload?

Si tu le désires je peux te passer la classe par le biais des MP si tu veux y jeter un oeil^^


Unload permet de vider le contenu d'un loader. Tu dois bien charger tes images dans des loader, non ?
black almond
Oui oui^^ j'ai une petite classe qui me facilite les loader^^
Bon je regarderai ça demain matin parce que la je suis un peu sick...arf.
Si j'ai un probleme je reviendrai^^

Merci a vous deux pour l'instant en tout cas icon_smile.gif
tibibi
Si demain t'as encore des problèmes, envoies moi ta classe... On sait jamais, j'aurais peut-être une idée icon_mrgreen.gif

++icon_wink.gif
G.
oui en fait au lieu de lancer ton chargement dans le constructeur tu peux envisager une methode qui prendrait cmme argument un tableau contenant les images à charger et qui ferait le chargement dans les loaders genre:

Action Script



public function load (pArray:Array):void
{

var total:int = pArray.length;
for (var i:int = 0; i< total; i++)
{

//création des loaders, ajout à la liste d'affichage, écouteurs etc

}
}



voire si ton nombre de loaders est prédéfini passer ce nombre en paramètre du constructeur qui va instancier autant de loaders et ta méthode load chargera tout en masse à chaque fois.
black almond
Pour te répondre tout de suite pour l'instant je procède comme suit:

J'ai en paramètre de mon constructeur, parmi d'autres, le nombre de fichiers a charger, et les URL des miniatures et des grandes ...
Puis j'encapsule dans 2 tableaux les URL des unes et des autres...

Et ensuite, en résumant, je lance un le chargement des miniatures, par le biais d'un 'tite classe de chargement (pour aller plus vite), comme suit:
-je charge les fichier par le biais de la classe: charge(monTableauURLMiniatures[0])
-et je shift le tableau;

Finalement je ne sais pas si c'est la bonne méthode...

(Pour l'instant je suis en train de refaire la classe pour la rendre plus propre...)
G.
en faitj'ai eu à faire un truc du genre récemment (charger un groupe d'images etc), etla méthode la plus souple pour moi était celle que j'ai exposée. Bon d'un autre côté j'aime pas trop avoir à passer des arguments au constructeur, sauf quand c'est réellement utile, mais là pour la souplesse je pense qu'une méthode qui charge devrait être plus pratique, surtout si tu veux réutiliser ta classe en chemin. enfin après c'est toi qui vois en fonction de tes besoins propres.

et au passage tu pourrais envisager de charger en une fois les images aux "grandes" dimensions et ensuite les réduire en vignette et à chaque clic tu attaches ce bitmapdata à un nouveau bitmap à l'emplacement de la grande. Niveau temps de chargement/utilisation de ressources tu ferais des économies je pense
black almond
Yop! De retour (pour de nouvelles aventures!!!)
icon_lol.gif

Finalement j'ai reconstruit ma classe, l'ai nettoyé, customisée à mort, et résolu mes problèmes qui en fait n'en était pas... en fait... parc'que ouais... voilà.

Bref, ma classe marche:
+-custom de la galerie par passage de paramètres sous forme de tableau (parce que après 5 paramètres en constructeur, ça devient moche)
|--- couleurs{loadbar/ecran} / taille{d'à peu près tout} / urls, etc...
+-gestion des miniatures séparées des bigPics au cas ou l'on voudrait avoir des miniatures autres que les grandes...bref
+-ecran qui s'adapte au bigPics
+-gestion du passage de nouvelles photos a la galery
+-navigation par bigPics...

Enfin en gros, un truc du genre, m'manque plus qu'à gérer un mask et un scroll quand y'a beaucoup de photos, mais ça va pas être long ça...

Voilà, voilà.
tibibi
On pourra voir le résultat? icon_biggrin.gif

++icon_wink.gif
black almond
Citation (tibibi @ Nov 30 2008, 01:36 PM) *
On pourra voir le résultat? icon_biggrin.gif

++icon_wink.gif


Oui, ici
Faut bien prendre en compte que y'a des trucs pas encore fignolés comme les barres de chargement qui apparaissent en haut a gauche parce que j'ai eu la flemme de mettre des coordonnées ^^'
Le bouton blanc est la pour changer le répertoire photos...

EDIT: N'hésites pas a faire part de gros bugs, ou de simples avis
tibibi
J'ai un bug ds la 2ème galerie avec 2 images. Ça affiche toujours la même photo quand on clic sur les photos icon_confused.gif Sinon tout marche bien icon_mrgreen.gif

++icon_wink.gif
black almond
C'est bizarre chez moi ça marche nickel...
Faut prendre en compte que les deux images se ressemblent:

2 photos de gars en t-shirt blanc coupées au niveau des têtes avec juste la position du corps qui change un peu...
(t'as pas un screenshot vite fait?)
tibibi
Voilà icon_cool.gif En fait ça affiche un peu ce que ça veut comme image 1, la 2ème s'affiche normalement icon_smile.gif
tibibi
En faite ça bug quand on passe trop vite à la 2ème galerie. Sinon ça fonctionne icon_biggrin.gif
black almond
arf oui ça a l'air strange^^
Je vais faire en sorte de bloquer le bouton, tant que les miniatures d'une ne sont pas chargée...
Enfin je vais voir ce que je peux faire^^
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.