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

Flash Discussion :

Selection de texte dans un editeur de texte


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Selection de texte dans un editeur de texte
    J'ai besoin de sélectionner une zone de texte et de lui changer certains attributs (police, coleur, size...).
    Mon pbl: Je n'arrive pas à appliquer mon action sur la partie sélectionnée,
    Je donne un extrait de code ci-desous qui sert à mettre le texte en gras
    :


    mc.createTextField("txtfld", 100, 150, 20, 50, 100);
    mc.txtfld.type = "input";
    mc.txtfld.border = true;
    mc.txtfld.selectable = true;
    mc.txtfld.wordWrap = false;
    mc.txtfld.autoSize = true;
    mc.txtfld.text = "Aidez-moi SVP";
    formatCourant = new TextFormat();
    MyListner = new Object();
    MyListner.onMouseUp = function() {
    MySelection = Selection.getFocus();
    if (eval(MySelection) == mc.txtfld) {
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    }
    Mouse.addListener(MyListner);
    };
    boldButton.onRelease = function() {
    Selection.setFocus(mc.txtfld);
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    Selection.setSelection(beg, end);
    formatCourant = mc.txtfld.getTextFormat();
    formatCourant.bold = !formatCourant.bold;
    mc.txtfld.setTextFormat(beg, end, formatCourant);
    };

    Je joint également le fla simou37000.fla , et si kelkun peut m'aider à résoudre ce pbl je serais reconnaissant.

    Merci à l'avance


    P.S: il ya surement plein d'editeur de texte en ligne avec leur codes sources, mais c souvent pas clair et en plus j'aimerai bien aller au bout de mon code si vous voulez bien m'aider à trouver mes erreurs.

  2. #2
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    salut,


    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
    // [...]
    /* juste apres la selection du texte, on sauvegarde les indice de la selection */
    MyListner.onMouseUp = function() {
      MySelection = Selection.getFocus();// <= je croi qu'il y a plus simple ?.?.?
      if (eval(MySelection) == mc.txtfld) {// <=
      beg = Selection.getBeginIndex();
      end = Selection.getEndIndex();
    }
    /* lorsqu'on appuis sur un bouton, le texteField perd le focus et la selection  courante
     => on restor donc la selection précedement sauvegardé */
    boldButton.onRelease = function() {
      Selection.setFocus(mc.txtfld);// on donne le focus a notre editeur de texte
      // j'ai l'impresion d'avoir oublié un truc
      // mais quoi ??
      Selection.setSelection(beg, end);// on restaure la selection
      formatCourant = mc.txtfld.getTextFormat(beg,end);// on recupere les attribut de formatage identique de la selection 
    => tout ce qui est different est initialisé a undefined 
      if(formatCourant.bold==undefined)
        formatCourant.bold=true;// ou false c'est selon toi :-D
      else
        formatCourant.bold = !formatCourant.bold;
      mc.txtfld.setTextFormat(beg, end, formatCourant);
    };
    Attention:
    Il semble que si un texte de meme font mais de police differente est interpreter comme deux font differente .... =/

    En esperant pouvoi t'aider ...

  3. #3
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://download.macromedia.com/pub/documentation/en/flash/fl8/flash_as2ir.zip

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Y-a t-il kelkun d'autre qui voit comment faire?
    jetez d'oeil dans le .fla pour plus d'explication.

    C simple, j un bouton et un champs texte contenu dans un mc, je veux selectionner une pertie du texte et la mettre en gras en appuyant sur le bouton.
    Je pense avoir tout fais bon, amsi ca ne marche pas.

  5. #5
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    re ...
    Je clos ce post sous le slogan : "reaction => sanction"

    Si vous ne pouvez pas expliquer quelque chose a une enfant de six ans,
    vous ne le comprenez probablement pas.
    Albert Enstein.
    Citation Envoyé par simou37000
    c'est peut etre toi l'enfant de six ans a qui on arrive pas a expliquer qoui que ce soit? mais il falait me le dire comme ca j'aurai ete plus clair avec toi.

    Je t'ai juste pas compris mon enfant c'est pour ca que j'ai pas reussi a t'expliquer que tu m'as reecris la meme chose a une exception pres (ton if...==undefined... qui sert a rien dans mon exemple).

    Bref, arrete de te meler des problemes des autres qui te depassent largement rien que pour augmenter le nombre de messages et maintenir ton "membre confirmé".

    Mais merde a la fin, lis bien ce que t'as ecris bo...

    Dans la joie et la bonne humeur, je te souhaite une bonne continuation et une intervention meilleure.
    ... Je n'ajouterai aucun commentaire =X

    Code a simou : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    boldButton.onRelease = function() {
    Selection.setFocus(mc.txtfld);
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    Selection.setSelection(beg, end);
    formatCourant = mc.txtfld.getTextFormat();
    formatCourant.bold = !formatCourant.bold;
    mc.txtfld.setTextFormat(beg, end, formatCourant);
    };

    Code ... : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Selection.setFocus(mc.txtfld);// on donne le focus a notre editeur de texte
      // ==> beg = Selection.getBeginIndex(); <==
      // ==> end = Selection.getEndIndex(); <==
      Selection.setSelection(beg, end);// on restaure la selection
      formatCourant = mc.txtfld.getTextFormat(beg,end);

    Quelques explications simpose: (les commentaires n'étant pas suffisant apparemment .... '-_-]
    Quand boldButton.onRelease est appelé cela veux dir que tu a appuyé sur un objet/clip/mc. Lorsque tu appuie (bouton de la sourie enfoncé) en dehors du champ de texte (ton editeur ... ) cela provoque l'evenement onKillFocus du champ de texte. C'est a dir que le champ de texte a perdu le focus!!!!!!!!!.IL N'Y A DONC PLUS DE SELECTION!

    Il faut donc faire attention !!
    Code a simou : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    boldButton.onRelease = function() {
    // 1]
    Selection.setFocus(mc.txtfld);
    // 2]
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    Selection.setSelection(beg, end);
    formatCourant = mc.txtfld.getTextFormat();
    formatCourant.bold = !formatCourant.bold;
    mc.txtfld.setTextFormat(beg, end, formatCourant);
    };
    1]
    Lorsque tu fait Selection.setFocus(mc.txtfld); , si mes souvenir son bon, tu donne le focus au texte et cela selectionne la totalité du texte contenu.
    2]
    Ensuite tu recupere les indice de la selection qui font tout le texte. Or, ce qui nous interesse, c'est la selection qui a été sauvegardé lorsqu'on à détecté "onMouseUp" c'est pour ca qu'on les a sauvegarder avec beg et end :-)
    Mais le probleme que tu rencontre provien du fait que tu écrase les indices de la séléction (beg, end) avec la totalité du texte.

    .... voila, mais j'ai toujour peure que simou n'ai pas compris
    Pour faire plus simple ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    boldButton.onRelease = function() {
      formatCourant = mc.txtfld.getTextFormat(beg,end);
      if(formatCourant.bold==true)
        formatCourant.bold=false;
      else
        formatCourant.bold =true;
      mc.txtfld.setTextFormat(beg, end, formatCourant);
      // ca serai bien de restauré la selection pour l'utilisateur :aie: ...
    };
    En esperant que tu la voi la difference là! ...


    Citation Envoyé par simoue
    As-tu telecharger le .fla? fais donc les modif et dis moi si tu recois un resultat.
    ... de l'impératif : bhin voyons...

    A vous lecteur! Voila ce qu'il ne faut pas faire.

    PS: merci de pas surcharger ma boite de message privé simou37000 ;-)

  6. #6
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    J'oubliait , simou crée toi un nouveau compt là ....


    PS: c'est avec ce genre de message qu'on augmente ses stat et pas avec ceux que tu peux voir avant ;-)

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Probleme resolu
    Il falait faire:

    MyListner = new Object();
    MyListner.onMouseUp = function() {
    if (Selection.getFocus()=="_level0.mc.txtfld") {
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    }
    boldButton.onRelease = function() {
    formatCourant = mc.txtfld.getTextFormat(beg,end);
    formatCourant.bold = !formatCourant.bold;
    mc.txtfld.setTextFormat(beg, end, formatCourant);
    };
    };



    Ou bien:

    [....]
    var beg:Number;
    var end:Number;

    boldButton.onRollOver = function() {
    // on sauvegarde les indice de sélection avant de cliquer sur le bouton
    beg = Selection.getBeginIndex();
    end = Selection.getEndIndex();
    }

    boldButton.onRelease = function() {
    formatCourant = mc.txtfld.getTextFormat(beg,end);
    formatCourant.bold = !formatCourant.bold;
    mc.txtfld.setTextFormat(beg, end, formatCourant);
    };

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

Discussions similaires

  1. position du texte dans mon editeur de texte
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 06/06/2009, 19h43
  2. [TinyMCE] Insérer un texte dans l'éditeur MCE
    Par karimphp dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 20/04/2008, 19h12
  3. Editeur de texte dans champs MEMO
    Par joe_rock dans le forum IHM
    Réponses: 1
    Dernier message: 19/10/2007, 00h11
  4. Inserer du texte dans l'editeur actif
    Par bpy1401 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/11/2006, 19h23

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