begin process at 2012 05 27 11:49:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Panier d'achat flash


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

Panier d'achat flash

lundi 1 août 2011 à 15:19:39 | Panier d'achat flash

fabien493

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 :

Code ActionScript :
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 = "<p align=\"center\">Vous avez <font color=\"#990000\"><br><b>"+nombreProduits+"</b><br></font> produits dans votre panier</p>";
// 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 = "<p align=\"center\">Vous avez <font color=\"#990000\"><br><b>"+nombreProduits+"</b><br></font> produits dans votre panier";
        _global.message += "<br> pour un total de <font color=\"#990000\"><br><b>"+coutTotal+"</b><br></font> euros</p>";
        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 = "<p align=\"center\">Vous avez <font color=\"#990000\"><br><b>"+nombreProduits+"</b><br></font> produits dans votre panier";

 _global.message += "<br> pour un total de <font color=\"#990000\"><br><b>"+coutTotal+"</b><br></font> euros</p>";

 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

lundi 1 août 2011 à 15:34:05 | Re : Panier d'achat flash

Julien39

Membre Club Administrateur CodeS-SourceS
Bonjour,

Pour comprendre ce qui ne va pas, il faut qu'on lise ton code, peux tu expliquer ton problème plus clairement (tu auras plus de réponses je pense).
lundi 1 août 2011 à 18:08:59 | Re : Panier d'achat flash

fabien493

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.

Merci pour vos réponses,
amicalement,
Fabien493


lundi 1 août 2011 à 21:07:12 | Re : Panier d'achat flash

aerolyte

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:
Code ActionScript :
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:
Code ActionScript :
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

Cordialement
mardi 2 août 2011 à 14:34:53 | Re : Panier d'achat flash

fabien493

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 :


Code ActionScript :
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

mardi 2 août 2011 à 14:41:47 | Re : Panier d'achat flash

fabien493

P.S : on peux pas éditer nos propres message ?

petite rectification :

Code ActionScript :
// 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);
};


je crois que c'est tout.

Merci
fabien493
mardi 2 août 2011 à 16:10:32 | Re : Panier d'achat flash

aerolyte

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;

messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;
};

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...

Cordialement
mardi 2 août 2011 à 16:12:17 | Re : Panier d'achat flash

Orange73

Membre Club
Hello,

Pour tes questions :

1/
Code ActionScript :
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)
mardi 2 août 2011 à 16:15:25 | Re : Panier d'achat flash

Orange73

Membre Club
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)
mardi 2 août 2011 à 17:55:51 | Re : Panier d'achat flash

fabien493

...snif...

1 2

Cette discussion est classée dans : message, function, txt, global, nombreproduits


Répondre à ce message

Sujets en rapport avec ce message

Function et Variable besoin d aide [ par Martino26 ] Reegarder mon code vous allez p-t comprendre _global.calculer = function (x,p) { _global["fauxtotal"+p] = ["total"+p] + hasard statusrep = x; if ( Var == Var ? [ par Bryce007 ] Bonjour,mon code : stop();_global.Txt_sam_01 = 'Bonjour VV'_global.Txt_sam_01 = _global.CTXT01TXT01.text= CTXT01CTXT01 est pourtant "Undefined" pourqu pb de boucle for [ par athenavenus ] Bonjour, j'essaie de télécharger du texte quand on clic sur trois lien cependant j'essaie de le faire avec une boucle for mais ça ne marche pas... si vérification mail [ par julllles ] salut à tous !j'aimerais juste connaitre le code qui permet de savoir si l'utilisateur à bien remplis le champ "message" ( au moins 8 caracteres )  af CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml [ par maxofiatpolski ] En espérant que quelqu'un aura une idée car c'est hyper URGENT....Je détaille un peu pour que tout soit clair...Je suis en train de créer un CD-Rom Fl aller a la frame (x) par le biais d'un fichier xml [ par grosbleu ] Salut a tous, j'aurai besoin d'un conseil, voila mon problème, j'ai récupéré un code sympa de galerie dynamique xml et je veux remplacer les instructi mail qui ne marche que quand il fait beau [ par vegetalain ] Slt. J'écris ici en quête d'un éclaircissement divin de la situation. J'avais trouvé un truc mail flash/php qui marchait du tonnerre. Et  hop, ça marc Problème Formulaire AS2/php [ par a44icus ] Bonjour, j'ai un problème avec mon formulaire flash/php. Quand je clique sur le bouton envoyer il se passe quelque chose avec le serveur mais je ne re Problem incomprensible [ par utopique ] Bonjour, Je suis en train de devenir fou donc un peu d'aide serait trés gentil de votre part. Lorsque je teste ma scène ou lance mon swf dans un n Lien a href dans TextField dynamic AS 2.0 [ par yasminou77 ] Bonjour, J'aimerai mettre un lien dans ce code (mon_texte). J'ai cherché partout mais n'ai rien trouvé. J'espère que vous pourez m'aider. TextField.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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

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