IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Transmission d'evenements MXML / AS


Sujet :

Flex

  1. #1
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut Transmission d'evenements MXML / AS
    Bonjour tous le monde, je suis confronté depuis peu à un probleme qui commence vraiment à me rendre héritant,

    Le probleme est le suivant :

    j'ai une vu MXML qui contient un dataGrid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <mx:DataGrid styleName="todoDataGrid" 
    						headerSeparatorSkin="mx.skins.ProgrammaticSkin" 
    						id="alertDataGrid"
    						 verticalScrollPolicy="off" horizontalScrollPolicy="off" width="100%" rowHeight="40" variableRowHeight="true"
    						 labelFunction="addContact" 
    			>	
     
    				<mx:columns>
     
    					<mx:DataGridColumn dataField="isRead" headerText=" "  width="20"  itemRenderer="com.alligra.project.sfrdc.component.todolist.renderer.CheckBoxAction" resizable="false"/>
    					<mx:DataGridColumn dataField="type" headerText="Type" width="50" itemRenderer="com.alligra.project.sfrdc.component.todolist.renderer.DocTypeRenderer" resizable="false"/>
    					<mx:DataGridColumn dataField="title" headerText="Titre"  wordWrap="true" width="330" itemRenderer="com.alligra.project.sfrdc.component.todolist.renderer.ExpandingTDL" resizable="false"/>
    					<mx:DataGridColumn dataField="date" headerText="Date"  width="100" resizable="false"/>
    					<mx:DataGridColumn dataField="author" headerText="Emetteur"  width="110" resizable="false"
    						itemRenderer="com.alligra.project.sfrdc.component.common.renderer.AuthorItemRenderer"/>
    				</mx:columns>
    			</mx:DataGrid>
    Donc j'utilise beaucoup d'Item Renderer l'un d'eux s'appelle ExpandingTDL fait en AS qui contient un Text et une image

    ce que je veux faire est que lors du click sur l'image recuperer l'evenemt dans le MXML

    et ca je n y arrive pas à le faire, il se peut que ça ne soit pas possible aussi je ne sais pas si quelqu'un à une idée je suis vraiment preneur

    Merci
    Samy
    http://www.m-ataf.com (En cours de construction)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Qu'est-ce que tu entends par "récupérer l'événement dans le mxml" ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    En faite j'ai une image dans mon itemRendere sur laquelle j'ai ajouté un EventListner en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    editComment = new Image();
    editComment.addEventListener(MouseEvent.CLICK, onClick);
    au click on attiré sur la fonction onClick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private function onClick( e : MouseEvent):void
    {
     
     
               var toDoListEvent : TodoListEvent = new TodoListEvent(TodoListEvent.EDIT_COMMENT);
               dispatchEvent(toDoListEvent);
    }
    donc la je dispatch l'event TodoListEvent

    et je veux le recuperer dans le MXML
    http://www.m-ataf.com (En cours de construction)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Tu ne sais pas comment ajouter un listener à ta classe mxml ou alors tu l'as fait et ça ne fonctionne pas ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  5. #5
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    j'avoue je travail rarement en MXML, il se peut que j'ai raté des étapes

    les testes que j'ai fais coté MXML sont les suivant :

    dans le creationComplete de la vue j'ai rajouté un Eventlistener ce ne fonctionne pas

    dans le creationComplete du dataGriid j'ai rajouté un Eventlistener ce ne fonctionne pas

    j'ai rajouté la metaTag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <mx:Metadata>
        	[Event(name="editComment", type="com.alligra.project.sfrdc.component.events.TodoListEvent")]
    	</mx:Metadata>
    ca ne fonctionne pas

    voila il se peut que j'ai vraiment mal fais les choses donc si tu as une idée ça m'arrangerai

    Merci d'avance
    Samy
    http://www.m-ataf.com (En cours de construction)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Je n'ai jamais défini de listener en mxml, uniquement en AS.

    Donc ajoute le en AS comme c'est ta préférence.

    Ensuite est-ce que tu as essayé de mettre bubbles à true dans ton événement ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  7. #7
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Question : comment je rajoute mon listner dans la vue MXML

    sinon pour le buble qu'on tu le met à true, ca genere un probleme d'evenement en gros il sort l'erreur suivant

    impossible de convertir TodoListEvent en ListEvent

    j'imagine qu'il dispatch deja un ListEvent avant le TodoListEvent
    http://www.m-ataf.com (En cours de construction)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    comment je rajoute mon listner dans la vue MXML
    dans la balise <m:script> en <![CDATA[ ]]> !!
    pourquoi ça pose problème ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  9. #9
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    non ça pose pas de probleme c'est juste que ca ne fonctionne pas car j'ai deja essayé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private function toDoListComplete(e : Event) : void
    			{
     
    				this.addEventListener(TodoListEvent.EDIT_COMMENT, addContact);
    				trace ("Slt " +e.toString());
    			}
    ca ne fonctinne pas aucun eveneent n'est remonté
    http://www.m-ataf.com (En cours de construction)

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    sinon pour le buble qu'on tu le met à true, ca genere un probleme d'evenement en gros il sort l'erreur suivant

    impossible de convertir TodoListEvent en ListEvent
    elle est déclenchée où cette erreur ?

    en général cela survient quand l'interface de ton listener n'utilise pas le bon type d'Event. Donc cela voudrait dire que ton evenement est correctement propagé mais que ton listener est incorrectement défini.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    il ressemble à quoi ton addContact ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  12. #12
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Pour l'instant j'essaye juste de remonté l'evenement donc le addContact est comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function addContact(anEvent : Object):void
    {
         trace ("Bonjour ");
     
    }
    en fait l'erreur sur le qu'on a le buble est à true c'est au niveau du Click sur L'image dans l'itemRenderer il te donne aucune explication, j'imagine qu'il porpage le ListEvent au lieu du TodoListEvent
    http://www.m-ataf.com (En cours de construction)

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    dans le creationComplete du dataGriid j'ai rajouté un Eventlistener ce ne fonctionne pas

    j'ai rajouté la metaTag
    Code :
    <mx:Metadata>
    [Event(name="editComment", type="com.alligra.project.sfrdc.component.events.TodoListEvent")]
    </mx:Metadata>
    ca ne fonctionne pas
    Le problème c'est que tu travailles sur un item renderer. Le fait de définir ceci sur la datagrid ne va pas te permettre de récupérer tes évènements.
    J'ai bien compris n'est ce pas ? L'évènement vient bien de ton item renderer?

  14. #14
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    En faite l'evenement vient de l'itemRenderer contenu dans une dataGridColum du DataGrid, maintenant le DataGrid est dans une vue MXML, je vouderai juste recuperer cet evenement,

    ce qui est impossible pour l'instant. j'ai essayé de rajouter des listener dans le MXML ca ne fonctionne pas

    Merci d'avance
    http://www.m-ataf.com (En cours de construction)

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Si tu souhaites faire un click sur un item tu dois utiliser l'évènement itemClick de ta datagrid. La datagrid pourra ainsi transmettre tout évènement issu de tes itemRenderer.

  16. #16
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Je suis assez dacord avec toi, cependant ce type d'evenement est generé qu'on tu click sur n'importe quel colonne de ton dataGrid ou bien sur n'importe quelle ligne, mais dans mon cas je doit catcher juste l'event qui provient du click de l'image de L'itemRenderer pour effectué une tache précise (ouverture d'une popup)

    tu peux me dire pkoi tu utilise pas itemClick : tous simplement je l'utilise aussi pour faire un autre traitement et je pensais qu'en utilisant un itemRendere je pourrai distinguer les deux Events, chose que je peux faire en AS, le probleme c'est que je redeveloppe sur un code deja existant et ke j'ai que ça comme alternative car refaire le composant en AS prenderai du temp (contrainte livraison )

    voila
    http://www.m-ataf.com (En cours de construction)

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Tu ne peux pas filtrer en fonction des itemRenderer que tu as ? Car quand tu reçois un évènement il contient l'itemRenderer concerné par le click.

  18. #18
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    En faite, je n'arrive meme pas à remonter l'event donc impossible de faire aucun traitement, ce je catch c'est juste l'event MouseEvent qu'on tu click sur l(image qui est dans l'itemRenderer mais cette evenemtn ne me sert a rien sauf pour dispatcher l'event que je veux

    je me suis documenté un peu sur le sujet, ils disent toujours d'herité çad créer ton propre composant,

    javoue que là il y a une difference entre travailler en MXML (je ne suis pas trop fun) et faire tous en AS (peu etre je me trompe)

    mais je suis vraiement preneur pour n'importe qu'elle idée
    http://www.m-ataf.com (En cours de construction)

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Là, je ne vois pas trop de quoi vous parlez...

    Je viens de faire un test avec l'un des itemrenderer que j'utilise.

    Dans l'itemRenderer j'ai ajouté un dispatchEvent qui est déclenché lorsque l'on click sur un Text.

    Dans le composant qui contient le DataGrid j'ai ajouté un listener sur la DataGrid.

    Je reçois bien mon événement, A CONDITION qu'il soit créé avec bubbles à true +++
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

Discussions similaires

  1. Problème de transmission d'evenements
    Par Higestromm dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 12/11/2009, 09h37
  2. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  3. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo