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 :

Comment déclarer un event de manière à ce qu'il soit proposé par l'auto-complétion ?


Sujet :

Flex

  1. #1
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut Comment déclarer un event de manière à ce qu'il soit proposé par l'auto-complétion ?
    Bonjour à tous ,

    J'ai créé un composant en as3 et fait en sorte qu'on puisse l'instancier en MXML.
    Ce que j'aimerais pouvoir faire c'est déclarer dans ma classe as3 un évènement tout simple de la classe Event (qui s'appellerait 'test' par exemple) et qu'il soit accessible depuis MXML avec l’auto-complétion. Et bien entendu comment faire également pour émettre cet évènement en temps voulu ?

    Je ne sais vraiment pas dans quelle direction chercher, toute aide ou orientation est la bienvenue

  2. #2
    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
    Bonjour, c'est trop vague comme description, ta fait en sorte qu'on puisse l'instancier en mxml je ne comprends pas cette phrase car toutes classes AS est utilisable en MXML, après pour l'event dans les pratiques c'est de créer ta propre classe Event qui étend la classe Event et tu mis dedans ce que tu veux,

    Utiliser un Event en MXML je pense qu'il y a bcp de tutos qui te propose ça je suis dsl en ce qui me concerne j'ai des connaissances très limités en MXML

    Bon courage

    Samy

  3. #3
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Désolé à force de remanier mon post il reste des bouts de phrases qui n'ont plus trop de sens

    Quand je dis "faire en sorte" je veux dire que j'ai tout simplement prévu un constructeur sans argument c'est tout.

    après pour l'event dans les pratiques c'est de créer ta propre classe Event qui étend la classe Event et tu mis dedans ce que tu veux,
    J'utilise déjà cette technique dans d'autres cas mais ce n'est pas cela que je cherche à faire.

    Ce que je veux faire c'est un TextInput personnalisé. Pour cela je crée une classe qui hérite de HBox et qui contient un textInput.
    Ce que je voudrais que que lorsque mon textinput émet un évènement "change" mon composant personnalisé émète un event "change" ce qu'il ne fait pas de lui même

    Mais je ne tiens pas à faire un dispatch(new event("change")) parce que ce n'est pas utilisable en MXML.

    Ce que j'aimerais pouvoir faire c'est déclarer dans ma classe as3 un évènement tout simple de la classe Event (qui s'appellerait 'test' par exemple) et qu'il soit accessible depuis MXML avec l’auto-complétion
    J'espère avoir été plus clair,
    merci pour votre aide

  4. #4
    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
    Est ce que ta classe qui étend la Hbox fait autres choses ou juste elle contient un textInput ?????????????

  5. #5
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Bonjour samy,

    Oui oui bien sûr qu'elle fait autre chose !
    Je pense voir où tu veux en venir mais tu penses bien que si elle faisait rien d'autre il n'y aurait pas d'utilité.

    En fait si je ne suis pas assez clair c'est parce que j'ignore comment s'appelle ce que je recherche
    Et donc j'essaye (maladroitement ) de faire deviner ce dont j'ai besoin. Je sais que c'est pas trop le principe des forums mais ça m'aiderait vraiment beaucoup...

    Je vais tenter d'être plus clair en m'aidant de screenshots.
    Pour cela, voici le composant TextInput dont l'évènement "change" à été déclaré de façon à pourvoir être utilisé directement en MXML et qui est très pratique :

    Et voici deux lignes de code extraitent de la classe TextInput qui pourraient expliquer cette facilité :


    Hélas si j'ajoute ces deux lignes à mon composant perso, il ne possèdent toujours pas cet event accessible en MXML.
    Et donc je m'en remet à la communauté pour m'aiguiller.

    Merci d'avance pour toute aide ou tout renseignement pouvant m'aider.

    NB : j'ai découvert que cela pouvait être très facilement fait en MXML (ce qui impliquerait que mon composant perso soit écrit en MXML) auquel cas il suffirait de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <mx:Metadata>
        [Event(name="eventName", type="eventType")]
    </mx:Metadata>
    Je l'ai testé et cela fonctionne. Je cherche l'équivalent en ActionScript (qui produirait le même effet)

    Merci encore

  6. #6
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Montrueux !

    Ça fonctionne.
    C'était bel et bien la ligne suivante qu'il fallait mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Event(name="modification", type="flash.events.Event")]
    Sauf que c'est en dehors de la déclaration de classe qu'il fallait la mettre. Plus précisément après les imports.
    Et puis dans la classe elle même il suffit de faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dispatchEvent(new Event('modification'));
    Quand on le souhaite (au moment voulu)

    NB: j'utilise ici "modification" pour bien montrer qu'on peut mettre ce qu'on veut.

  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
    bonjour ToniConti merci d'avoir poster la solution sinon,

    J'avoue je ne comprends pas, la différence entre ta solution et le fait de créer ton propre Évent, si ce n'est que l'évent que tu as ajouté est à l'intérieur de ta classe

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public class TestEvent extends Event
    	{
     
    		public static const MY_TEST_EVENT : String = "modification";
     
     
                  //déclaration d'objet, paramètres ...
                  public function TestEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false)
    		{
    			super(type, bubbles, cancelable);
    		}
     
    }

    Et puis dans la classe elle même il suffit de faire un :

    dispatchEvent(new Event('modification'));

    Et puis dans la classe elle même il suffit de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var eventTest : TestEvent = new TestEvent(TestEvent.MY_TEST_EVENT);
     
    dispatshEvent(eventTest);

    il n y a pas trop de différence sauf que dans la nouvelle classe Event tu peux lui associer des Objet, des paramètres ...

    voila


    Samy

  8. #8
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    En fait mon objectif était simplement que l'event soit accessible depuis l'auto-complétion mxml. Rien d'autre!

    Le type d'évent m'importe peu j'ai simplement besoin d'un signal.

    La technique que tu m'as montré permet de pouvoir transporter de l'information - ce qui est très pratique et je l'utilise d'ailleurs dans d'autres situations.
    Mais dans ce cas-ci, elle ne permettait pas de résoudre mon problème.

    Merci quand même pour ta détermination à me venir en aide

    Anthony

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C++/CLI]Comment gerer l'event maximize ?
    Par ekinox17 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 25/01/2006, 10h19
  2. [D7] Comment choper un event à partir d'1 dll sans DispID
    Par raoulmania dans le forum Langage
    Réponses: 1
    Dernier message: 26/10/2005, 19h22
  3. Réponses: 5
    Dernier message: 20/09/2005, 23h48
  4. [Property] Comment déclarer une chaine par defaut ?
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/09/2004, 23h11
  5. Comment déclarer une DataSource dans server.xml
    Par guillaume06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/06/2004, 15h27

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