BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
19 juil. 2010 à 13:56
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
19 juil. 2010 à 22:27
Bonjour à toutes et à tous,
je vous explique rapidement mon souci :
j'ai fait un lecteur mp3 multiplaylistes, et je suis en train de mettre en place un système de panier qui permettra de passer une commande pour des morceaux choisis.
Pour gérer donc l'affichage des morceaux ajoutés au panier, voici la solution pour laquelle j'ai opté :
- je charge donc au début le xml "playlists" qui contient les url de chacune de mes playlistes, et je stocke tout ça dans un array ("mesAlbums" par exemple).
- ensuite une fois le xml chargé je fais une boucle sur un array déclaré au préalable ("TabCommande" par exemple), afin de créer les dimensions nécessaires -> 1 dimension pour une playliste.
- ensuite au chargement de la playliste par défaut (mesAlbums[0] en somme) je lance un boucle qui permet de "remplir" la dimensions en rapport de "TabCommande", soit TabCommande[0].
- puis après au changement de playliste je relance le procédé en utilisant une variable pour pister l'index de la playliste -> PosMonAlbum = l'index de la playliste choisie contenue dans l'array "mesAlbums".
Jusque là tout va bien, à chaque chargement de playliste mon array multidimensionnel se remplit correctement.
Alors c'est là que ça se corse :
- pour ajouter un morceau au panier je clique donc sur un bouton (btn_ajout_panier), et grâce à une variable nombre "PosZik", j'identifie l'index du morceau, et la variable PosMonAlbum me permet d'identifier la dimension de l'array "TabCommande". Puis je modifie TabCommande en mettant le prix du morceau choisi (le prix par défaut d chaque morceau contenu étant 0). Une fois ceci fait j'appelle une fonction qui effectue une boucle sur TabCommande et une condition dans cette boucle précise que si la donnée "prix" est différente de 0, cela pushe les données à cet index dans un autre array : "MaCommande", et enfin une autre fonction est appelée et dans cette fonction j'effectue une boucle sur "MaCommande" afin de créer dynamiquement des clips "boutons" pour afficher la commande passée, du genre pour chaque clip créé : "Mon Morceau - Prix 45 euros".
Conclusion :
vous constaterez que j'ai donc pas mal de boucles et pas mal d'array dans mon code, et c'est probablement pour ça que ça coince, car lorsque je teste j'ai des résultats qui ne sont pas logiques ; en effet j'ai simulé la même commande plusieurs fois (en l'occurrence j'ai testé plusieurs fois d'ajouter les MEMES morceaux au panier), et le fait est que je n'obtiens pas le même résultat à l'affichage du panier d'un test à l'autre.
Ma question est donc la suivante :
est-ce que trop de boucles effectuées à la chaîne dans flash peuvent s'avérer vectrices de "bugs" ? Car malgré tout mon array multidimensionnel "TabCommande" étant rempli correctement, mes variables étant initialisées correctement aux moments où elles doivent l'être, je devrais donc avoir un résultat logique... Mais le résultat n'est pas logique .
Et sinon, comment procéderiez-vous à ma place pour créer un système de panier suivant ces contraintes, en envisageant la solution la moins "lourde" :
- lecteur mp3 multiplaylistes
- panier comportant les commandes "ajout d'un morceau", "suppression d'un morceau", et "changement du prix d'un morceau".
Car finalement je me demande si j'ai opté pour la bonne méthode... Array multidimensionnel ou création d'objets pour gérer les morceaux commandés ?
Merci à celles et ceux qui auront pris le temps de me lire et de me répondre
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
A voir également:
Array multidimensionnel et variables... et les limites de flash
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 19 juil. 2010 à 17:21
Le tableau d'objet est en fait exactement comme un XML (et il se traite pratiquement de la même façon).
Pour ce qui est de l'ajout/suppression/modification de donnée dans le XML c'est simple comme bonjour.
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 19 juil. 2010 à 15:58
Hello Peg',
j'avais pensé utiliser le xml, en stockant donc les données "prix" à l'intérieur, mais je trouvais plus commode de gérer tout cela dans le flash afin d'avoir des fichiers xml plus souples. Mais je testerai certainement si je ne parviens pas à trouver la solution. La problématique c'est qu'une fois des morceaux ajoutés au panier, ces morceaux puissent être modifiés au niveau du prix choisi (je propose 4 licences différentes, donc 4 prix), et ce quelle que soit la playliste qui est chargée. C'est pourquoi j'avais opté pour un array multidimensionnel. Ca m'a d'ailleurs permis de "faire connaissance" avec les array multidimensionnels car je n'en avais jamais utilisé.
Un tableau d'objet c'est un tableau dans lequel on crée des objets auxquels on peut appliquer une méthode définie, c'est bien ça ? J'avais envisagé cette solution aussi mais je n'ai pas encore gratté dessus... Donc à voir.
Merci ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 19 juil. 2010 à 22:27
Re,
bon j'ai finalement trouvé une solution à mon problème ; à chauqe chargement de playliste je définis une variable nombre qui correspond à l'index de la playliste dans l'array qui les stocke : "PosAlbumM". J'ai un slide de miniatures qui représente les "jacquettes" de chaque playliste, au clic sur l'une de ces miniatures, je définis "PosAlbumM" avec le numéro du clip cliqué. J'ai donc constaté que "PosAlbumM" lors du clic est correctement défini, mais dans mes fonctions pour incrémenter mon array multidimensionnel (fonctions dans lesquelles je ne fais que me servir de "PosAlbumM" pour indiquer quelle est la dimension à modifier), et bien j'ai constaté que "PosAlbumM"... ne correspondait pas forcément à sa juste valeur... allez savoir pourquoi... Bref, pour contourner le problème j'ai tenté ceci : j'ai créé un autre array dans lequel je stocke, à chaque définition de "PosAlbumM", ... et bien "PosAlbumM" lui-même. Le fait est qu'ainsi ça marche, et mon array multidimensionnel se remplit correctement cette fois-ci en allant chercher la bonne dimension à chaque fois.
Tout ça pour dire qu'il y a certainement une faille dans mon code concernant la gestion de ma variable "PosAlbumM"... Mais je n'ai pas encore trouvé où elle était.
Bonne soirée ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;