frais2port_txt._alpha = 0; frais2portoffert_txt._alpha = 0; //Selection.setFocus("pays_txt"); pays_txt.text = "france"; function frais2port() { switch (pays_txt.text) { case "FRANCE" : trace("france"); frais2port_txt.text = "0"; frais2port_txt._alpha = 0; frais2portoffert_txt._alpha = 100; frais2portoffert_txt._x = frais2port_txt._x; frais2portoffert_txt.text = "offert"; break; case "BELGIQUE" : frais2port_txt.text = "10"; frais2port_txt._alpha = 100; frais2portoffert_txt._alpha = 60; frais2portoffert_txt._x = frais2port_txt._x+25; frais2portoffert_txt.text = "€"; break; case "SUISSE" : frais2port_txt.text = "12"; frais2port_txt._alpha = 100; frais2portoffert_txt._alpha = 60; frais2portoffert_txt._x = frais2port_txt._x+25; frais2portoffert_txt.text = "€"; break; case "LUXEMBOURG" : frais2port_txt.text = "12"; frais2port_txt._alpha = 100; frais2portoffert_txt._alpha = 60; frais2portoffert_txt._x = frais2port_txt._x+25; frais2portoffert_txt.text = "€"; break; case "DOM" : frais2port_txt.text = "15"; frais2port_txt._alpha = 100; frais2portoffert_txt._alpha = 60; frais2portoffert_txt._x = frais2port_txt._x+25; frais2portoffert_txt.text = "€"; break; case "TOM" : frais2port_txt.text = "17"; frais2port_txt._alpha = 100; frais2portoffert_txt._alpha = 60; frais2portoffert_txt._x = frais2port_txt._x+25; frais2portoffert_txt.text = "€"; break; } } _root.onEnterFrame = function() { pays_txt.text = pays_txt.text.toUpperCase(); frais2port(); };
Télécharger le zip
Hello ! moi j'ai fait la même chose en fonction du poids du colis et en récupérant le prix depuis un XML L'avantage c'est qu'il suffit de changer un tarif ou d'ajouter un poids sans recompiler le flash. Voici le XML (avec les tarifs en vigeur 2006 !) <?xml version='1.0' encoding='UTF-8' ?> <forfaits_livraison> <item poids_gr="250" prix_ht_fr="5.05" prix_ht_dom="11.50" prix_ht_tom="17.00"> </item> <item poids_gr="500" prix_ht_fr="5.95" prix_ht_dom="11.50" prix_ht_tom="17.00"> </item> <item poids_gr="750" prix_ht_fr="6.55" prix_ht_dom="14.00" prix_ht_tom="20.00"> </item> <item poids_gr="1000" prix_ht_fr="6.95" prix_ht_dom="14.00" prix_ht_tom="20.00"> </item> <item poids_gr="1500" prix_ht_fr="7.40" prix_ht_dom="18.50" prix_ht_tom="31.40"> </item> <item poids_gr="2000" prix_ht_fr="7.80" prix_ht_dom="18.50" prix_ht_tom="31.40"> </item> <item poids_gr="3000" prix_ht_fr="8.35" prix_ht_dom="23.50" prix_ht_tom="42.80"> </item> <item poids_gr="4000" prix_ht_fr="9.00" prix_ht_dom="28.50" prix_ht_tom="54.20"> </item> <item poids_gr="5000" prix_ht_fr="9.70" prix_ht_dom="33.50" prix_ht_tom="65.60"> </item> <item poids_gr="6000" prix_ht_fr="10.30" prix_ht_dom="38.50" prix_ht_tom="77"> </item> <item poids_gr="7000" prix_ht_fr="10.70" prix_ht_dom="43.50" prix_ht_tom="88.40"> </item> <item poids_gr="8000" prix_ht_fr="11.75" prix_ht_dom="48.50" prix_ht_tom="99.80"> </item> <item poids_gr="9000" prix_ht_fr="11.75" prix_ht_dom="53.50" prix_ht_tom="111.20"> </item> <item poids_gr="10000" prix_ht_fr="11.75" prix_ht_dom="58.50" prix_ht_tom="126.60"> </item> <item poids_gr="15000" prix_ht_fr="13.55" prix_ht_dom="76.00" prix_ht_tom="135.10"> </item> <item poids_gr="20000" prix_ht_fr="18.35" prix_ht_dom="101.00" prix_ht_tom="147.50"> </item> <item poids_gr="30000" prix_ht_fr="18.35" prix_ht_dom="126.00" prix_ht_tom="158.50"> </item> </forfaits_livraison> Côté flash, il faut récupérer les données dans 3 tableaux à 2 dimensions contenant poids en grammes - prix HT Et suivant le poids du panier par exemple on calcul les frais de transport. Voir un exemple ici : http://www.toutauto.info/racine/galerie/ventes.html Si ce code vous interesse, je peux le poster dès que j'ai un peu de temps ... A bientôt ..
Au lieu de mettre un _root.onEnterFrame = function() { pays_txt.text = pays_txt.text.toUpperCase(); frais2port(); }; je mettrerais un OnLoad (sinon boucle ss fin) Yaya
Loubiou, ton xml est très bon ! ca m'interesse enorme ce code ! tu m'offres de nouvelles pistes. bravo pour ta boutique, bo boulot. noya_m, jpensais faire valide_btn.onRelease=function(){ delete this.onEnterFrame; ... } pour valider les "informations" de ce formulaire. et puis, je n'ai pas reussi avec onload à faire qch qui marche, tu veux bien approfondir ton id?
déja supprime le _root au lieu de mettre _root.onEnterFrame qui te sort ton trace XX fois, donc la tu vas que tu as une boucle qui va freiner ton application mets un onLoad = function() { pays_txt.text = pays_txt.text.toUpperCase(); frais2port(); }; ***************************** A supprimer _root.onEnterFrame = function() { pays_txt.text = pays_txt.text.toUpperCase(); frais2port(); }; ***************************** Yaya www.myflashstore.com
c'est cque j'avais fait, mais ca marche pas. a moins que jme trompe. et comme ca, tu en penses quoi? pays_txt.text = "FRANCE"; frais2port_txt.text = "0"; frais2port_txt._alpha = 0; frais2portoffert_txt._alpha = 100; frais2portoffert_txt._x = frais2port_txt._x; frais2portoffert_txt.text = "offert"; function frais2port() { .... } pays_txt.onSetFocus = function() { _root.onEnterFrame = function() { pays_txt.text = pays_txt.text.toUpperCase(); frais2port(); }; }
Oky voici le code pour lire le XML (écrit vite fait) C1 c2 et c3 sont les cases à cocher. TabPoids = new Array("0"); TabPrixFR = new Array(); TabPrixDOM = new Array(); TabPrixTOM = new Array(); TabBT = new Array(); initXML = new XML(); initXML.load ("init.xml"); initXML.onLoad = LireInit; function LireInit(){ _root.charge = this.loaded; variables = this.firstChild; liste = this.childNodes[2];//.attributes; liste2 = this.childNodes[4];//.attributes; if (liste.nodeName == "forfaits_livraison") { NbNoeuds=((liste.childNodes.length -1)/2); N=1; for (u=1; u<=NbNoeuds; u++){ Vpoids = liste.childNodes[N].attributes.poids_gr; VprixFR = liste.childNodes[N].attributes.prix_ht_fr; VprixDOM = liste.childNodes[N].attributes.prix_ht_dom; VprixTOM = liste.childNodes[N].attributes.prix_ht_tom; Vpoids = liste.childNodes[N].attributes.poids_gr; N=N+2; TabPoids[u] = Vpoids; TabPrixFR[u] = VprixFR; TabPrixDOM[u] = VprixDOM; TabPrixTOM[u] = VprixTOM; }//for }//if } //------------- le procédure pour lire le poids et calculer le prix en fonction Forfait = function () { if (totalPoids>=0){ total.depa=""; for (var p=0; p<=(TabPoids.length-1); p++){ if ((totalPoids >= TabPoids[p]) and (totalPoids <= TabPoids[p+1])){ if (TabPoids[p]==0){//plus petit que 1er poids id=1;}else{id=p+1;} if (totalPoids >= TabPoids[TabPoids.length-1]){//poids max total.depa="Prévoir surcoût"; return total.port=0; } if (C1==true) {total.port=TabPrixFR[id];} if (C2==true) {total.port=TabPrixDOM[id];} if (C3==true) {total.port=TabPrixTOM[id];} }//if }//for return total.port; }//>=0 } // partie run C1=true; totalPoids = 735; pour le test Forfait(); //Resultat : trace(total.port); Voilà je ne l'ai pas testé ni optimisé car j'ai écrit ça vite fait pour vous donner matière à réflexion. Bien entendu on devrait passer en param à la procédure l'état de C1 C2 et C3 ainsi que le poids total du panier mais encore faut-il créer le panier et en récupérer les infos mais pour créer le panier il faut créer les articles puis les afficher et les lire ... bref faut tout créer. C'est juste un bout de code en démo. Merci pour vos encouragements ça me motive pour la suite ;-)) Bye ...
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 192 membres 26 nouveaux aujourd'hui 16 151 membres club