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 :

Propriété non definie


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut Propriété non definie
    Bonjour tout le monde !

    Etant debutant en Flex j'essaie d'utiliser un evenement clavier dans le code actionscript, et j'ai un message d'erreur que je n'arrive pas à résoudre malgré mes recherche sur l'ami google.

    A la ligne, my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill),
    j'ai 2 erreurs:

    -accès à la propriété non definie autoFill

    -accès à la propriété non definie my_input

    --------------------------------------------------
    Voici mon code:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:TextInput id="my_input"/> <!--Declaration d'un TextInput-->
    <mx:Label id="my_label" x="22" y="30" width="86"/> <!--Declaration d'un Label-->


    <mx:Script>

    //fonction listener autoFill (déclenche la reaction d'écriture d'un texte face à l'evenement)
    private function autoFill():void
    {
    my_label.text = my_input.text;
    }


    my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);
    //On utilise la methode addEventListener qui ecoute l'evenement KeyboardEvent.Key_UP pour reagir en appellant la méthode autoFill


    </mx:Script>


    </mx:Application>



    Je sais que cela doit etre une erreur toute bete mais je vous remercie par avance, si vous pouvez me sortir de cette impasse.

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Salut voila d'où vient le problème:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    
    <mx:TextInput id="my_input"/> <!--Declaration d'un TextInput-->
    <mx:Label id="my_label" x="22" y="30" width="86"/> <!--Declaration d'un Label-->
    
    
    <mx:Script>
    
    // il faut ajouter ici CDATA
    
    //fonction listener autoFill (déclenche la reaction d'écriture d'un texte face à l'evenement)
    private function autoFill():void
    {
    my_label.text = my_input.text;
    }
    
    // Cette ligne n'est pas dans une fonction on ne peut pas mettre du code en dehors d'une fonction
    my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);
    //On utilise la methode addEventListener qui ecoute l'evenement KeyboardEvent.Key_UP pour reagir en appellant la méthode autoFill
    
    
    </mx:Script>
    
    
    </mx:Application>
    Ce qui donnerait après correction ce ci:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    
    <mx:Script>
    <![CDATA[
    
    	//fonction listener autoFill (déclenche la reaction d'écriture d'un texte face à l'evenement)
    	private function autoFill(event:KeyboardEvent):void
    	{
    		my_label.text = my_input.text;
    	}
    
    
    	//my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);
    //On utilise la methode addEventListener qui ecoute l'evenement KeyboardEvent.Key_UP pour reagir en appellant la méthode autoFill
    
        ]]>
    </mx:Script>
    
    <mx:TextInput id="my_input" keyUp="autoFill(event)"/> <!--Declaration d'un TextInput-->
    <mx:Label id="my_label" x="22" y="30" width="86"/> <!--Declaration d'un Label-->
    
    
    
    </mx:Application>
    Tu définis le keyUp directement dans la balise TextInput je crois que c'est le plus simple à faire.

    ++

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut
    Merci pour <![CDATA[ ]]> , j'avais oublié ce petit detail

    C'est vrai que la méthode dans le MXML est plus simple à mettre en place, mais ayant un background orienté objet, je preferrai associer un listener à un composant coté ActionScript.

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    C'est vrai que la méthode dans le MXML est plus simple à mettre en place, mais ayant un background orienté objet, je preferrai associer un listener à un composant coté ActionScript.
    Mais tu peux aussi le faire par ActionScript:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()">
    
    <mx:Script>
    <![CDATA[
    
    	//fonction listener autoFill (déclenche la reaction d'écriture d'un texte face à l'evenement)
    	private function autoFill(event:KeyboardEvent):void
    	{
    		my_label.text = my_input.text;
    	}
    
    
    	//my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);
    	//On utilise la methode addEventListener qui ecoute l'evenement KeyboardEvent.Key_UP pour reagir en appellant la méthode autoFill
    
    	/** Methode appelee a la fin de la creation des composants.*/
    	private function onCreationComplete():void
    	{
    		my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);
    	}
    
        ]]>
    </mx:Script>
    
    <mx:TextInput id="my_input"/> <!--Declaration d'un TextInput-->
    <mx:Label id="my_label" x="22" y="30" width="86"/> <!--Declaration d'un Label-->
    
    
    
    </mx:Application>

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut
    Mille fois merci !

    J'aurai du m'en douter qu'il fallait créer une fonction incluant la methode addEventListener ..cela m'apprendra à suivre aveuglément le livre

    Voici mon code final avec les commentaires tres explicites pour les autres debutants interessés, un peu corrigés:



    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="ListenKeyboard()">
    <!--l'attribut creationComplete de la balise <mx:Application> permet de faire appel à une fonction au chargement de l'application, apres la creation des composants,
    ici la fonction -->

    <mx:TextInput id="my_input"/> <!--Declaration d'un TextInput-->
    <mx:Label id="my_label" x="22" y="30" width="86"/> <!--Declaration d'un Label-->


    <mx:Script>
    <![CDATA[

    //fonction listener autoFill (déclenche la reaction d' ecriture du texte saisi lorsque l'evenement en parametre est déclenché, ici KeyboardEvent)
    private function autoFill(KeyboardEvent:Event):void
    {

    my_label.text = my_input.text;//On manipule le composant TextInput "my_input".
    }

    private function ListenKeyboard():void
    {
    my_input.addEventListener(KeyboardEvent.KEY_UP, autoFill);//methode addEventListener permettant de signifier à l'objet my_input qu'il doit reagir face à l' evenement KeyboardEvent.Key_UP en appellant la méthode autoFill

    }
    ]]>

    </mx:Script>


    </mx:Application>




    ++

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2006, 13h44
  2. Réponses: 10
    Dernier message: 20/01/2006, 11h50
  3. [VBA] MsgBox non definie
    Par coco21 dans le forum Access
    Réponses: 3
    Dernier message: 15/12/2005, 10h05
  4. propriété non visible
    Par chtiot dans le forum Langage
    Réponses: 10
    Dernier message: 15/09/2005, 10h30
  5. [TFiler, TWriter] Propriété non publiée : Ancestor kesako ?
    Par phplive dans le forum Composants VCL
    Réponses: 5
    Dernier message: 13/07/2005, 14h34

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