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 :

flex ACtion Script TextARea


Sujet :

Flex

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut flex ACtion Script TextARea
    Bonjour,
    voila j'ai un projet a réalisé et j'ai un problème.

    Voici ma fonction qui me permet de créer un textArea et de définir ces paramètres :

    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
    var Idtext : Array=new Array ();
     
    public function Pop_fenetre(event:MouseEvent):void
    {
    var Area  : TextArea= new TextArea();
     
    Area.x=300 + 20*i;
    Area.y=100 + 20*i;
     
    Area.horizontalScrollPolicy="off";
    Area.verticalScrollPolicy="off";
    Area.editable = false; 
     
    Area.id= "area" + i;
    Idtext.push(Area);
    trace (Area.id);
    addChild(Area); 
    Area.styleName = "area";
     
    i++;
    k=i-1;
     
    MoveEffect.target=PopUpManager.createPopUp(this,texte,true);
    MoveEffect.play(); 
    Area.percentWidth=50;
    Area.addEventListener(MouseEvent.CLICK,mouseMoveHandler);
    }

    En faite après avoir créer ma textArea, j'appel une Popup (texte). Cette Popup s'ouvre et dedans un éditeur de texte apparait ( composant RichTextEditor décrit en MXML). Donc on l'utilisateur écrit dans ce composant, et moi j'affiche ce qui a été écrit dans ma TExtarea créer précédemment. LA pas de problème.


    Ce que je voudrais c'est :
    1)LOrsque l'utilisateur SELECTIONNE la TextArea, et si ensuite il click sur une image par exemple, il faudrait que ma Popup s'ouvre a nouveau avec la valeur htmlText de ma TExtarea. Comme cela, le texte contenue dans ma TExtarea serrait a nouveau dans mon éditeur de texte , et donc a nouveau modifiable par l'utilisateur.
    2) Lorsque l'utilisateur sélectionne la TextArea, et si ensuite il click sur un bouton supprimer par exemple,le textarea soit supprimé.

    Merci de votre aide.
    Si vous ne comprenez pas tout, hésitez pas a me poser des questions.

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,
    en fait je ne suis pas sûr de comprendre où est ton problème.
    Corriges moi si je me trompe mais tu voudrais savoir comment passer les valeurs du TextArea déjà rempli à ton pop up lorsque le pop up s'ouvre ?

    En fait vu ce que tu as déjà fait, et vu ce qui a l'air de marcher, je ne comprend pas où tu bloques car j'ai l'impression que tu as fait le plus dur jusqu'à maitenant

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Mon problème en faite c'est de savoir quel TexArea a sélectionné l'utilisateur, pour pouvoir renvoyée le bon paramètre vers ma Pop up. JE ne sais pas comment savoir quel Textarea a été cliqué ou sélectionné par l'utilisateur?

    Peut tu m'aider sur ce point?
    merci

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    As-tu regardé du côté de l'event.target ? pour savoir quel composant a broadcasté l'event ?

    un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function mouseMoveHandler(evt:MouseEvent):void
    {
      switch (evt.target.id)
     {
       case "area1":
               ...
               break;
       ...
     }
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Je ne sais pas comment utiliser event.target peut tu m'expliquer?

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Hop, petite recherche google : http://www.adobe.com/livedocs/flex/2...nt.html#target

    En fait l'event.target te renvoie une référence de l'objet qui a dispatché l'event. En d'autres termes, dans ton cas, l'event.target, donc la target de l'event MouseEvent qui vient d'être dispatché sera un TextArea.

    Il ne te reste plus qu'à trouver son id d'où le evt.target.id dans le code que je t'ai mis précédemment (au final ton code pourrait ressembler à ça entre autres).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    En fait, je sais d'ou vient mon problème mais je ne sais pas comment le résoudre. JE vais tenter de l'expliquer.

    Voici ma fonction appelé au clic d'une image :
    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
    32
    33
    34
    35
    36
    37
    var Idtext : Array=new Array ();
     
    public function Pop_fenetre(event:MouseEvent):void
    {
     
    var Area  : TextArea= new TextArea();
     
    Area.x=300 + 20*i;
    Area.y=100 + 20*i;
     
     
    Area.horizontalScrollPolicy="off";
    Area.verticalScrollPolicy="off";
    Area.editable = false; 
     
     
    /* Area.mouseFocusEnabled=true;
    Area.focusRect=true; */
     
     
    Area.id= "area" + i;
    Idtext.push(Area);
    trace (Area.id);
     
    addChild(Area); 
    Area.styleName = "area";
     
    i++;
    k=i-1;
     
    MoveEffect.target=PopUpManager.createPopUp(this,editeur,true);
    MoveEffect.play(); 
    /* Area.percentWidth=100; */
     
    Area.addEventListener(MouseEvent.CLICK,mouseMoveHandler);
    Area.addEventListener(KeyboardEvent.KEY_UP,essai1);
    }
    Donc a chaque appel de ce fonction, un textarea est défini avec différentes propriété. Ensuite, j'appel ma Popup (texte) avec mon éditeur de texte. L'utilisateur rentre son texte, et moi je l'ajoute dans le texte area cré précédemment. A chaque clic, sur l'image, je repete cette opération.

    Ensuite, j'ai un événement qui appel une fonction mouseMoveHandler pour un drag and drop : la pas de problème.

    Mon second événement appel une fonction essai1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private function essai1 (event:KeyboardEvent) : void {
    cpt=1;
     
    var myPop : IFlexDisplayObject = PopUpManager.createPopUp(this,editeur,false);
    }
    Cette fonction créer une Popup en appelant mon editeur de texte. Mais j'ai mis une variable cpt que j'utilise dans mon composant texte.mxml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private function init (Evt: Event) : void {
    if (this.parentApplication.cpt == 1 )
    	{
    	rte1.htmlText=this.parentApplication.Idtext[this.parentApplication.k].htmlText;
    	}
    }
    Donc le problème c'est la avec la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rte1.htmlText=this.parentApplication.Idtext[this.parentApplication.k].htmlText
    DOnc en résumé, si j'appuie sur la flèche du haut du clavier, je rappel mon editeur de texte avec la dernière valeur rentré dans la dernière textarea crée. Le problème c'est que je veu pouvoir ouvrir mon éditeur de texte avec n'importe quel valeur de textarea (valeur de la première ou deuxième text area par exemple). LE problème c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [this.parentApplication.k]
    Le k représente alors ma derniere textarea crée et je ne sasi aps quoi mettre pour que ce soi ma textarea sélectionné....

    A tu compris?

  8. #8
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    ouh la euh .... :p

    je m'emmêle un peu les pinceaux je t'avoue :p

    par contre, la fonciton init est bien dans le code de la pop up c'est bien ça ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Oui init appelé au tout début de la pop up
    QU est ce que tu ne comprend pas?

  10. #10
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    C'est juste un peu embrouillé :p

    non mais c'est pas grave.

    Honnêtement, pour ma part, quand j'utilise des pop up et que j'ai des appels de fonction à faire ( ou bien des appels de variable) à faire entre une pop up et l'appli, je préfère passer par des variables que je set au moment où je crée la pop up par exemple.

    En gros dans ma pop up j'aurai un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [Bindable]
    private var _parentView:MyParentView; // <- du type de la view parent
    public get parentView():MyParentView{return _parentView;}
    public set parentView(value:MyParentView):void{_parentView = value;}
    et lorsque tu initilise ta pop up, tu peux mettre quelquechose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myPopup.parentView = this;
    ca c'est juste un exemple avec la vue parente, mais en gros tu peux faire pareil avec n'importe quel variable et dans les 2 sens.

    En gros juste pour te dire de passer peut être plutôt par des variables, plutôt que par des "parent" etc ...
    A partir de là tu devrais être capable de stocker quelque part les id des textarea et de pouvoir faire quelquechose avec tout ça.

    Je ne sais pas si je réponds bien à ta question je t'avoue, la je te propose plus une façon de faire qui puisse te permettre de récupérer les bonnes variables au bon moment.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    JE en pense pas que cela va m'aider car moi je veux juste avoir le k ,k qui représente si c'est la 1 , 2 eme ou 3 eme ... texarea créer au moment de la sélection de l'utilisateur pour pouvoir le réutilisé ici après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rte1.htmlText=this.parentApplication.Idtext[this.parentApplication.k].htmlText;

  12. #12
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    est-ce que le k change après avoir crée la pop up ? (désolé si ma question est évidente ou débile)

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    non k change quand un nouvel Tex area est cré :
    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
    32
    33
    public function Pop_fenetre(event:MouseEvent):void
    {
    
    var Area  : TextArea= new TextArea();
    
    Area.x=300 + 20*i;
    Area.y=100 + 20*i;
    
    
    Area.horizontalScrollPolicy="off";
    Area.verticalScrollPolicy="off";
    Area.editable = false; 
    
    
    /* Area.mouseFocusEnabled=true;
    Area.focusRect=true; */
    
    
    Area.id= "area" + i;
    
    Idtext.push(Area);
    trace (Area.id);
    addChild(Area); 
    Area.styleName = "area";
    
    i++;
    k=i-1;
    MoveEffect.target=PopUpManager.createPopUp(this,editeur,true);
    MoveEffect.play(); 
    /* Area.percentWidth=100; */
    
    Area.addEventListener(MouseEvent.CLICK,mouseMoveHandler);
    Area.addEventListener(KeyboardEvent.KEY_UP,essai1);
    Donc, pour l'instant mon k représente la dernière textarea crée et non le texarea sélectionné par l'utilisateur...

    SI tu peu m'aider ca serait cool car la je ne sais vraiment pas comment faire!!!

  14. #14
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    J'ai du zapper quelquechose :

    c'est bien lorsque tu cliques sur un textarea que tu veux récupéré l'id de ce textArea ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    non je ne veu pas créer l'id du texte area : cela me sert a rien me semble-t-il!!!

    Je veux juste lorsque je clique ou selectionne un text area, je veux le repérer d'une manière et cela je ne sais pas comment; pour ensuite récupérer sa valeur.

    Effectevement l'id peut m'aider mais comment le récupérer lorsque le text area est sélectionné?


    Une autre question : existe-t-il un option pour supprimé une Textarea?
    merci

  16. #16
    Membre émérite
    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
    Par défaut
    curieux

    pourquoi pas ??
    k=i;
    i++ ;

    ou mieux :
    k=i++ ;

    Plus sérieusement, la première question qui reste sans réponse à la lecture de cette discussion est : "Que veut dire sélectionné pour un TextArea ? Comment déterminer qu'un TextArea est sélectionné ?"

    Si sélectionné veut dire "a le focus", lorsque tu cliques sur un bouton pour ouvrir la popup, le TextArea perd le focus et il n'est donc plus sélectionné...

    Donc à part créer un bouton par TextArea ou agir directement sur le TextArea (double-click par exemple) je ne vois pas comment identifier le TextArea sur lequel il faut agir.

    existe-t-il un option pour supprimé une Textarea?
    Et bien comme tu les stockes à la fois dans la liste des enfants de ton container principal et comme élément du tableau IdText il faut le supprimer de ces deux objets.

    Remarque générale :
    Par convention les noms de variable commence par une minuscule. Les identifiants commençant par une majuscule sont réservés aux identifiants de classe. Cela rendrait ton code plus lisible...

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Oui en fait, je voudrais savoir quand mon TExte Area a le focus? Mais je ne sais pas comment...

    Si j'appuie sur une touche (fleche par exemple), est ce que ma TexTarea perd le focus?

  18. #18
    Membre émérite
    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
    Par défaut
    Tu peux chercher du côté de UIComponent.getFocus() et des événements focusIn et focusOut.

    Si j'appuie sur une touche (fleche par exemple), est ce que ma TexTarea perd le focus?
    1- Le plus simple c'est peut-être d'essayer ?
    2- Dans un TextArea les touches de déplacement servent à se déplacer à l'intérieur du TextArea, donc le focus ne change pas. (A vrai dire je ne sais pas trop ce qu'est la touche "fleche" )

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Fleche du haut du clavier LOL

    En fait, quand je sélectionne un textarea et que je met un événement focus IN, j'arrive a affciher une alert.show mais je ne sais pas comment récupérer l'id du Textarea sélectionné ou quelque chose d'autre qui le caractérise...

  20. #20
    Membre émérite
    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
    Par défaut
    et bien tu utilises une variable à laquelle tu affectes ton TextArea dans le focusIn.

Discussions similaires

  1. flex et classes action script
    Par captu dans le forum Flex
    Réponses: 4
    Dernier message: 23/03/2010, 17h45
  2. Lire un PDF en Flex/Action Script
    Par CocoRambo dans le forum Flash
    Réponses: 4
    Dernier message: 13/11/2009, 16h10
  3. Flex, SVG et Action Script
    Par né-ti dans le forum Flex
    Réponses: 5
    Dernier message: 12/09/2007, 18h17
  4. [FLASH MX2004] Création d'un bouton Action Script
    Par chocobos dans le forum Flash
    Réponses: 12
    Dernier message: 13/04/2005, 12h03

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