fabien493
Messages postés11Date d'inscriptionlundi 8 novembre 2010StatutMembreDernière intervention 3 août 2011
-
1 août 2011 à 15:19
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
3 août 2011 à 13:21
Bonjour
Ayant besoin d'un panier d'achat pour un site web, j'ai enfin trouver ce qu'il me fallait. Malheureusement, j'ai un problème pour afficher les article directement dans mon array :
stop();
// on initialise les champs texte définissant les prix
// de chaque produits
prix_poule_txt.text = "20 euros";
prix_pc_txt.text = "200 euros";
prix_gelDouche_txt.text = "5 euros";
//On crée notre fameux tableau
_global.tabPanier = new Array();
// on définit des variables globales
_global.nombreProduits = 0;
_global.coutTotal = 0;
_global.message = "Vous avez
"+nombreProduits+"
produits dans votre panier
";
// Le champs texte qui informe dun nombre de produit et du cout total
messageNombre_txt.html = true;
messageNombre_txt.autoSize = true;
messageNombre_txt.htmlText = message;
//******************************
// function : ajouterPanier
ajouterPanier = function (quelProduit, quelleValeur) {
// on ajoute le produit définit par quelProduit
tabPanier.push(quelProduit);
// on affiche en interne le contenu du tableau
trace(tabPanier);
// on incrémente la variable nombreProduits
nombreProduits++;
// on ajoute la valeur défninie par quelleValeur à la
// variable coutTotal
coutTotal += quelleValeur;
// on redéfinit la variable globale message
// afin de préparer l'affichage des nouvelles données
_global.message = "Vous avez
"+nombreProduits+"
produits dans votre panier";
_global.message + = "
pour un total de
"+coutTotal+"
euros
";
messageNombre_txt.htmlText = message;
};
//******************************
// function : enleverPanier
enleverPanier = function (quelProduit, quelleValeur) {
// interdire la suppression de produit
// si le nombreProduits est <= 0 et coutTotal <=0
if (nombreProduits>=0 && coutTotal>=0) {
// on parcourt le tableau pour supprimer l'éléement correspondant
for (i=0; i<tabPanier.length; i++) {
// si l'élément est trouvé
if (tabPanier[i] == quelProduit) {
// on le supprime
tabPanier.splice(i, 1);
// on diminue le nombre de produits
nombreProduits--;
// on diminue la valeur du panier par la variable quelleValeur
coutTotal -= quelleValeur;
// on arrête la boulce
break;
}
}
// on redéfinit la variable globale message
// afin de préparer l'affichage des nouvelles données
_global.message = "Vous avez
"+nombreProduits+"
produits dans votre panier";
_global.message + = "
pour un total de
"+coutTotal+"
euros
";
messageNombre_txt.htmlText = message;
// on affiche en interne le contenu du tableau
trace(tabPanier);
}
};
// Actions sur les boutons
//*****************************
// POULE
ajoutPoule.onPress = function() {
ajouterPanier("poule", 20);
};
supprimePoule.onPress = function() {
enleverPanier("poule", 20);
};
//*****************************
// PC
ajoutPC.onPress = function() {
ajouterPanier("PC", 200);
};
supprimePC.onPress = function() {
enleverPanier("PC", 200);
};
//*****************************
// GEL DOUCHE
ajoutGelDouce.onPress = function() {
ajouterPanier("Gel Douche", 5);
};
supprimeGelDouche.onPress = function() {
enleverPanier("Gel Douche", 5);
};
Ce que je cherche à faire, c'est d'afficher les produits dans mon tableau.
Si quelqu'un pouvait m'aider.
Merci d'avance,
Amicalement,
Fabien493
fabien493
Messages postés11Date d'inscriptionlundi 8 novembre 2010StatutMembreDernière intervention 3 août 2011 1 août 2011 à 18:08
Bonjour Julien,
En fait, quand je clique sur ajouter un "geldouche" ou/et "Pc" cela m'affiche bien le montant dans le tableau et calcul aussi le montant global.
Ne connaissant pas l'AS par-cœur, je ne sais pas trop comment faire pour récupérer la variable "quelProduit" pour l'ajouter au tableau.
Je pense que ça doit être super simple mais je sèche.
Voila je ne sais pas si je suis assez clair, veuillez m'en excuser si cela n'est pas le cas. Pour information, ce script n'est pas de moi, j'ai pas mal cherché sur d'autres site et à part des paniers d'achat en PHP y'a pas grand chose en Flash.
aerolyte
Messages postés465Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention 4 mai 20131 1 août 2011 à 21:07
Bonjour,
tout d'abord, j'ai eu un petit sourire en lisant "Ne connaissant pas l'As par coeur", autant dire "étant débutant".
Concernant ton morceaux de code, il est relativement basique et il laisse transparaitre un certain nombre de chose inutile.
(par exemple la var _global.nombreProduits ).
car _global.nombreProduits est toujours egale à _global.tabPanier.length
D'autre part je t'invite utiliser une méthodologie que je suis en train de developper.
C'est a dire qu'au lieu de separer les informations d'un seul et meme éléments (avec les variables, quelobjet, quellevaleur)autant attribuer des propriétés à cet objet.
pour illustrer:
var produit1:Object;
produit1.name="poule";
produit1.prix=20;
De cette facon il te suffit de stocker cet objet dans un array pour conserver toutes le données associées a leur objet.
Enfin pour ton probleme , de remplissage de tableau, d'après ton script, il n'y a aucun pb a ce niveau, ton tableau se rempli avec:
tabPanier.push(quelProduit);
la ou tu péche c'est que tu le rempli avec un string ("poule"), au lieu de le faire avec un displayobject
fabien493
Messages postés11Date d'inscriptionlundi 8 novembre 2010StatutMembreDernière intervention 3 août 2011 2 août 2011 à 14:34
Salut aerolyte,
Je te remercie toi et julien pour vos réponses.
Au final, j'ai préférer tout reprendre depuis le début avec mon propre code. Comme je l'ai signaler ce code n'était pas de moi, alors je préfère développer le mien et comprendre concrètement ce que je fais !
Je me suis aperçu que je n'avais pas expliquer le "c'est pour quoi faire", alors voila, j'ai un site avec un menu de restaurant.
le but est de faire un panier d'achat ou à coté par-exemple de "poulet" il y as écrit + et - et quand on clique sur +, ça affiche dans une fenêtre au dessus appelé "panier" une liste : produit, quantités, et prix(sommes), quand on appuis sur - ça supprime le produit.exactement la même chose que sur Alloresto...
Donc voila ou j'en suis, j'ai fais pas mal de test mais me reste quelques problèmes...
dans la page, j'ai 3 zone de texte dynamique appelé messageProduit,messageQuant, et messagePrix :
stop();
// je définie mes variables :
var Lproduit = "0";
var Lquant = "0";
var Lprix = "0";
// Affichage des variables dans mes textes dynamiques :
messageProduit.htmlText = Lproduit;
messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;
// function : ajouterPanier :
ajouterPanier = function (produit, prix) {
// on ajoute le produit définit par quelProduit
LProduit = produit;
// on incrémente la quantités :
Lquant++;
// on mulitiplie le prix par la quantité :
Lprix = (prix * Lquant);
// et on affiche tout les résultats :
messageProduit.htmlText = ListeProduit;
messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;
};
// bouton poulet :
ajoutPoulet.onPress = function() {
ajouterPanier("Poulet", 20);
};
//bouton bière :
ajout.onPress = function() {
ajouterPanier("Super Bière", 50);
};
Voila ou j'en suis, je n'ai pas encore attaqué les suppression des produits, j'y vais petit à petit.
Les problèmes :
1 - je n'arrive pas à mettre l'un en dessous de l'autre les produits (normal puisque ce n'ai qu'une variable me direz-vous) j'ai essayé avec un array, même problème...
2 - le prix total ne prends en compte que l'un des 2 produits essayer c'est assez drôle.
Et effectivement aerolyte je suis débutant !
merci pour vôtres aides.
Amicalement,
Fabien493
Vous n’avez pas trouvé la réponse que vous recherchez ?
fabien493
Messages postés11Date d'inscriptionlundi 8 novembre 2010StatutMembreDernière intervention 3 août 2011 2 août 2011 à 14:41
P.S : on peux pas éditer nos propres message ?
petite rectification :
// function : ajouterPanier : ce n'ai pas ListeProduit mais LProduit
messageProduit.htmlText = LProduit;
// bouton bière : j'ai oublié le nom du bouton "ajoutBière" :
ajoutBière.onPress = function() {
ajouterPanier("Super Bière", 50);
};
aerolyte
Messages postés465Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention 4 mai 20131 2 août 2011 à 16:10
Bonjour,
Honnetement passe a l'as3, surtout si tu commence à faire de l'applicatif.
c'est normal que tu n'obtiens pas ce que tu veux:
c'est quoi ces variables, il faut les typer.
d'apres ce que tu as écrit ce sont des strings (texte); or c'est pas vraimment ce que tu veux.
var Lproduit = "0";
var Lquant = "0";
var Lprix = "0";
ajouterPanier=function (produit, prix){
//ici tu affectes une nouvelle chaine de caractères (string) à ta variable Lproduit.
LProduit=produit;
// on incrémente la quantités : ca a un pas d'interet, autant utiliser un vector ou un array.
Lquant++;
// on mulitiplie le prix par la quantité : la c'est carrémment faux
imagine que tu achete 2 produits A à 20€, puis 1 produit B a 60€.
d'apres ta formule Lprix a la fin ferais 180€ !!!
Lprix = (prix * Lquant);
ceci pour 3 raisons:
1> mauvais typage de ta variable;
2> tu ne cumulle pas les totaux. achaque fois tu réaffecte une nouvelle valeur au lieu de les cumuler
Lprix =Lprix+(prix);
3> ta quantité (Lquant) devrait etre utiliser pour indiquer le nombre d'ajout du meme produit et non pour la somme des produits
meme pricipe que pour le prix tu affecte un nouvelle variable au lieu de completer ton texte
aussi ta variable est mal nommée ListeProduit >Lproduit
messageProduit.htmlText = ListeProduit;
c'est juste un petit correctif car deja a la base la logique de fonctionnement est loin d'etre efficace.
C'est pour cela que je conseille de prendre un papier et un crayon et de mettre a plat ce que l'on souhaite et les solutions techniques envisagées.
etc...
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 2 août 2011 à 16:12
Hello,
Pour tes questions :
1/
messageProduit.htmlText += LProduit+"\n";
2/ Normal car a chaque fois que tu ajoutes un article tu redéfini Lprix, qui prend du coup que le dernier. Il faudrait définir tes variables dans la fonction d'ajout directement.
++
-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 2 août 2011 à 16:15
oups on s'est croisé aerolyte :-p
Comme le dit aerolyte, passer a l'AS3 sera beaucoup plus facile avec la gestion des evenements entre autres et surtout une programmation orienté objet.
-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
fabien493
Messages postés11Date d'inscriptionlundi 8 novembre 2010StatutMembreDernière intervention 3 août 2011 3 août 2011 à 12:02
Merci à vous pour vos réponses,
Honnêtement, je n'avais pas l'intention de prendre du temps pour ce genre de script, déjà que je développe tout le site web, html, php, mysql, et maintenant flash.
Mais au final, je me suis rendu compte que sans le faire moi même, cela ne sera pas comme je le veux, et donc me voila en route pour l'incommensurable chemin de prise de tête, et de cafés serrés, du pseudo développeur Flash.
Enfin bref, je vous remercie, je continue le développement en espérant que ça donne quelque chose de bien, par-contre L'AS3 c'est pas trop mon truc... mais qui ne tente rien n'a rien.
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 3 août 2011 à 13:21
Hello,
Comme le dit aerolyte, passer a l'AS3 sera beaucoup plus facile avec la gestion des evenements entre autres et surtout une programmation orienté objet.
Bon ce n'est pas pour en rajouter une couche mais comme on dit : "jamais deux sans trois", donc je suis du même avis que mes camarades : passe à l'as3 et tu auras de meilleurs résultats .
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;