Bouton onPress avec if ()

Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
- - Dernière réponse : Grabulb
Messages postés
5
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
27 mars 2009
- 3 août 2007 à 16:04
Voilà j'ai une anim avec combobox et un bouton.

Je souhaiterai que lorque je selectionne un item dans la combobox et que je press le bouton "BT" sa m'affiche un texte dans un textefield dynamic.

voilà la partie du code concerné :

if (pEvt.target.selectedItem == "moi"){
        affich.text = "Salut";
    }

je sais qu'il fo rajouter :
if ((pEvt.target.selectedItem == "moi") && (....)){
        affich.text = "Salut";

    }

Mais que mettre à la place des "..." ?

Merci
Afficher la suite 

13 réponses

Messages postés
759
Date d'inscription
mercredi 11 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2008
0
Merci
BT.onPress = function(){
if ((_root.pEvt.target.selectedItem == "moi")){
        _root.affich.text = "Salut";
    }
}
un truc du style
<hr />__undefine__
Commenter la réponse de shubenka
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
no sa ne fonctionnera pas car mon code if() est déjà dans une fonction.
Commenter la réponse de Orange73
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
Salut,

Et tout bêtement, avec une variable, ça n'irait pas ?

Code :
    var bouton_presse :Boolean = false;

    function bidon(){
        if(pEvt.target.selectedItem == "moi" && bouton_presse){
           trace("le bouton était bien pressé");
        }
    }    bouton.onPress function(){        bouton_presse true;    }    bouton.onRelease function(){    bouton_presse false;    }  
Fin code

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit :P)
Commenter la réponse de Darkrats
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
No sa marche pas ^^
Commenter la réponse de Orange73
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
Bhein si tu ne dis pas quel est ton message d'erreur, j'ai peur que personne ne pourra t'aider.

Ma solution fonctionne à coup sûr. Si ça ne fonctionne pas, c'est qu'il y a un problème de code en amont, mais ça ... on peut pas le savoir vu la quantité d'informations que tu donnes

Courage

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit :P)
Commenter la réponse de Darkrats
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
voilà mon code :

Pays = ["--Choix Pays--", "France", "Allemagne", "Suisse"];
VillesA = ["--Choix Ville--", "Berlin", "tata02", "tata03"];
VillesS = ["--Choix Ville--", "Geneve", "tata02", "tata03"];
VillesF = ["--Choix Ville--", "Annecy", "Paris"];



maCombo02.enabled = false;
maCombo01.dataProvider = Pays;
//
var monEcouteur:Object = new Object();
monEcouteur.change = function(pEvt) {    if ((imp.selected true) && (pEvt.target.selectedItem "France")) {
  maCombo02.enabled = true;
        maCombo02.dataProvider = VillesF;
    } else if (pEvt.target.selectedItem == "Allemagne") {
        maCombo02.dataProvider = VillesA;
    } else if (pEvt.target.selectedItem == "Suisse") {
        maCombo02.dataProvider = VillesS;
    }
 if (pEvt.target.selectedItem == "Annecy"){
  lol.text = "Salut";
 }
 if (pEvt.target.selectedItem == "Paris"){
  lol.text = "Yop";
 }
};
maCombo01.addEventListener("change", monEcouteur);
maCombo02.addEventListener("change", monEcouteur);


Donc ajout quand on clic sur bouton dans cette ligne :

 if (pEvt.target.selectedItem == "Annecy"){
  lol.text = "Salut";
 }
Commenter la réponse de Orange73
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
D'après ce que je lis.

Tu as mis un écouteur sur tes combobox. A chaque changement de valeur choisie dans la première boite, tu affiches les informations de villes dans la seconde.
Et ce que tu voudrais arriver à faire c'est que si l'item "Annecy" est sélectionné quand tu cliques sur un bouton, il affiche ton texte.

Si c'est bien ça... (sinon c'est que j'ai rien compris à ce que tu voulais faire)

Tu ne dois pas mettre l'analyse de la ville et du bouton pressé dans l'écouteur de la combobox.
En effet, l'écouteur ne se lance que lorsqu'on modifie la combobox et non quand on clique sur un bouton !

Tu dois sortir ton code de l'écouteur et le mettre dans le bouton comme l'a dit Shubenka :

bouton.onPress = function(){
    if(maCombo02.selectedItem == "Annecy"){
       lol.text = "Salut";
    }
}

Si je suis à côté de la plaque, alors ne prends pas en compte ce qui est dit au dessus.

Juste pour info, quand tu as plusieurs conditions basée sur la même variable, c'est plus facile d'utiliser la propriété "switch"
switch(maCombo02.selectedItem){
    case "Annecy" :
        lol.text = "Salut";
        break;

    case "Paris" :

        lol.text = "Salut";

        break;
    default : lol.text = "";
}

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit :P)
Commenter la réponse de Darkrats
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Merci sa marche nikel :p

En fait ce qui m'arrangerai le mieux c'est de trouver comment faire fonctionner, mettre en relation les 2 combobox de ma source
http://www.flashkod.com/codes/DATAGRID-AVEC-FILTRE-XML_43371.aspx

comme je l'ai marqué en commentaire dans cette source.
Merci
Commenter la réponse de Orange73
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
Pour ton problème de filtre, je pense que le plus simple est encore de filtrer toi même tes informations.

A la rigueur, demande lui de trier les informations avec le premier filtre, récupère le contenu.
Avec une boucle, passe en revue toutes les informations utiles au second filtre.
Une fois que tu auras ton second tri effectué, tu n'as plus qu'à le rebalancer dans ta composant liste.

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit)
Commenter la réponse de Darkrats
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
Pour ton problème de filtre, je pense que le plus simple est encore de filtrer toi même tes informations.

A la rigueur, demande lui de trier les informations avec le premier filtre, récupère le contenu.
Avec une boucle, passe en revue toutes les informations utiles au second filtre.
Une fois que tu auras ton second tri effectué, tu n'as plus qu'à le rebalancer dans ta composant liste.

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit)
Commenter la réponse de Darkrats
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Re :p

une derniere chose.

Si je press le bouton je souhaite aue sa me charge un XML dans un datagrid... comment faire ?
Merci
Commenter la réponse de Orange73
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
12 mai 2008
1
0
Merci
Salut,

Je ne suis absolumment pas un pro des composants flash (chais pas si tu l'avais remarqué ), les composants, je préfère créer les miens

'Fin bref, tout ça pour dire que j'ai bien une solution mais il en existe peut être une plus adéquate.

Voici ce que je ferais :
Lorsque je voudrais envoyer le xml à ma DataGrid, je ferais une boucle qui enverrait les noeuds du xml un à un.
Genre un truc du style :
    var nLongueur :Number = xXml.childNodes.length;
    for(var nCellule :Number = 0; nCellule < nLongueur; nCellule++){
       var sContenu    :String  = xXml.childNodes[nCellule].nodeValue;
       maDataGrid.addItem(sContenu);
    }
Comme je te l'ai dit, je n'utilise jamais les composants de Flash donc je ne peux pas te dire que l'ajout de l'information dans la grille soit correct. A toi de vérifier dans l'aide.

A+

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit :P)
Commenter la réponse de Darkrats
Messages postés
5
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
27 mars 2009
0
Merci
Bonjour !
J'ai un probléme de tri de données xml dans un datagrid ... peut etre que je me trompe mais votre topic semble s'en rapprocher.
Je m'explique : Je réalise un projet dans lequel est intégré un datagrid qui affiche des données contenues dans un xml via XMLConnector et DataSet.
Je souhaite pouvoir trier ces données via plusieurs boutons de requete. Par exemple, si on clique sur un bouton "Hommes", le datagrid affiche toutes les données relatives aux hommes. Idem pour une quantité encore non définie de boutons.
J'ai presque trouvé mon bonheur sur le site de PhilFlash mais son code n'intègre que 3 requêtes.
J'utilise un SetFilter avec requete comme le sien, mais je souhaiterai ne pas être limité en quantité de bouton.
Voila, en espérant que quelqu'un ait la soluce, merce d'avance !
Commenter la réponse de Grabulb