Bouton onPress avec if ()

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011 - 7 juil. 2007 à 18:38
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

13 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
8 juil. 2007 à 15:11
BT.onPress = function(){
if ((_root.pEvt.target.selectedItem == "moi")){
        _root.affich.text = "Salut";
    }
}
un truc du style
<hr />__undefine__
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
8 juil. 2007 à 15:18
no sa ne fonctionnera pas car mon code if() est déjà dans une fonction.
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
9 juil. 2007 à 22:15
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)
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
9 juil. 2007 à 22:42
No sa marche pas ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
10 juil. 2007 à 10:18
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)
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
10 juil. 2007 à 11:11
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";
 }
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
10 juil. 2007 à 13:34
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)
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
10 juil. 2007 à 13:43
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
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
10 juil. 2007 à 14:25
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)
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
10 juil. 2007 à 14:25
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)
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
11 juil. 2007 à 14:21
Re :p

une derniere chose.

Si je press le bouton je souhaite aue sa me charge un XML dans un datagrid... comment faire ?
Merci
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
11 juil. 2007 à 15:27
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)
0
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
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 !
0
Rejoignez-nous