Problème avec bouton on/off

Problème avec bouton on/off - Flash/ActionScript - Programmation

Marsh Posté le 10-05-2007 à 15:07:18    

Bonjour tout le monde  :hello:  
 
Voici mon souci, j'ai plusieurs boutons on/off qui sont représenté par 2clip. Un clip représentant le bouton ON et un autre représentant le bouton OFF. Quand on appuye sur le bouton ON, celui-ci passe en invisible et le bouton OFF en visible, et vice versa. Je voudrai simplifier au maximimum ce code pour éviter de le répéter sur chaque bouton, c'est pourquoi j'avais pensé à nommer par un suffixe tout les bouton ON par un "1" et les boutons OFF par un "0".
exemple :
hebergement ON = hebergement1
hebergement OFF = hebergement0
restauration ON = restauration1
restauration OFF = restauration0
...
 
Je voulais me servir de ces suffixes pour qu'à l'appuye sur le bouton OFF, celui-ci fasse : this._name+1._visible=false.
Mais je ne sais pas comment lui dire d'additionner le +1 avec son nom. Quand je fait un trace(this._name+1) j'obtient toujours  hebergement0+1 et pas hebergement1.
Comment lui dire d'effectuer cette addition ?
 
Merci pour votre aide.

Reply

Marsh Posté le 10-05-2007 à 15:07:18   

Reply

Marsh Posté le 10-05-2007 à 17:04:52    

Voici une autre méthode que j'ai testé mais que je n'ai pas réussi à faire fonctionné:
 
var tab_btn = ["hebergement ", "restauration ", "produits loc ", "ravitaillement ", "edifices relig ", "sites a visiter ", "       les loisirs ", "medical "];
var m:Number = 0;
 
for (m=0;m<8;m++) {
 _root[tab_btn[m]+"1"].onPress = function() {
  _root[tab_btn[m]+"1"]._visible = false;
  _root[tab_btn[m]+"2"]._visible = true;
 };
 _root[tab_btn[m]+"2"].onPress = function() {
  _root[tab_btn[m]+"2"]._visible = false;  
  _root[tab_btn[m]+"1"]._visible = true;
 };
}
 
Le problème c'est que m correspond à toutes les valeurs de mon tableau en même temps. Ce qu'il m'aurait fallu c'est un "for each". Mais je n'ai rien trouvé qui y ressemble.
Ca m'énèrve d'autant plus que c'est tout con :kaola: .

Reply

Marsh Posté le 10-05-2007 à 19:25:41    

pourquoi ne pas mettre les images du bouton off, dans le bouton on et jouer avec la time line (gotoAndStop(); ) ?
Comme ca si par exemple ON est sur l'image 1, et OFF sur l'image 2 :
 
sur l'image 1 tu mets :
this.maVariable = true;
this.onRelease = function() {
gotoAndStop('2');
}
 
et sur la 2
this.maVariable = false; // ou _root.maVariable ou dans un tableau...
this.onRelease = function() {
gotoAndStop('2');
}
 
En fait je suis peut être trop rouillé et j'arrive pas à voir le problème :D

Reply

Marsh Posté le 11-05-2007 à 08:34:48    

J'avais pensé à cette solution, qui serait certement la plus simple pour créer un bouton on/off. Je voulais voir si j'étais capable de tout faire en code pour une fois, mais je crois que je vais laissé tombé et faire ça comme tu m'as dit.
 
Merci  :jap:

Reply

Marsh Posté le 11-05-2007 à 13:54:11    

En fait le mieu c'est d'associer la technique de An3k à la tienne.
C'est à dire ...
Tu crées tes boutons avec 2 images (et un stop() sur l'image 1). C'est beaucoup plus simple que 2 clips.
Ensuite tu mets tout les noms dans un tableau. (comme tu l'as fait sauf que tu dois virer TOUT les espaces et nommer tes boutons de la même manière)
Enfin tu fais une boucle pour traiter chaque bouton et t'en profites pour leurs ajouter 2 propriétés.
L'une pour un identifiant, l'autre pour un "statut".

 

Ce qui donne ;

Code :
  1. var tab_btn = ["hebergement", "restauration", "produitsloc", "ravitaillement ", "edifices relig ", "sites a visiter ", "les loisirs ", "medical "];
  2. for (var i in tab_btn) {// ceci correspond à peu prêt à un for each
  3. this[tab_btn[i]].id = i;
  4. this[tab_btn[i]].step = 1;
  5. this[tab_btn[i]].onPress = function() {
  6.  if (this.step == 2) {
  7.   this.gotoAndStop(1);
  8.   this.step = 1;
  9.  } else {
  10.   this.gotoAndStop(2);
  11.   this.step = 2;
  12.  }
  13. };
  14. }
 

L'identifiant te sert à lancer une action correspondant au bouton sur lequel tu as cliqué. Moi je m'en sers pas mal mais tu peux aussi utiliser la propriété name pour ça ...


Message édité par Zedlefou le 11-05-2007 à 13:54:44

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 11-05-2007 à 14:14:04    

WHAAA! merci beaucoup zed, je vais testé ça  :jap: .  
 
Les espaces que j'avais mis c'était parce que je récupérais le nom d'occurence du bouton pour le faire apparaitre dans un champ texte. Les espaces étaient là pour ne pas faire apparaitre le suffixe du bouton  :p .
 
encore merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed