begin process at 2010 02 10 00:17:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Probleme de selection de texte/ focus/Selection..


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de selection de texte/ focus/Selection..

mercredi 2 août 2006 à 03:34:06 | Probleme de selection de texte/ focus/Selection..

simojava

Bonjour,
Je voudrais faire une action sur une partie d'un TextField définie par Selection.getBeginIndex() et Selection.getEndIndex() et nonsur le texte en entier. Et ce dans le cadre de la réalisation d'un éediteur de texte en ActionScript.
Le probleme qui se pose est comme suit: Dès que j'appuie sur mon bouton la selection perd le focus et l'action ne se fait pas du coup.
J'ai essayé de restaurer la selection, de récuperer le TextFormat(), et de donner le focus à la sélection... mais en vain. Je m'y prend peut être très mal...
Voici un exemple de ce que j'utilise comme code: j'ai un TextField txtfld contenu dans un MovieClip vide mc et j'ai un bouton boldButton.


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();
formatCourant.bold=false;
// le listner qui observera la sourie
var MyListner:Object = new Object();
MyListner.onMouseUp = function() {
// recuperer le string qui a le focus
    MySelection = Selection.getFocus();
    if (MySelection == "txtfld") {          // j'ai aussi essayé   if (eval(MySelection) == mc.txtfld)
// recuperer les indices de la selection
        beg = Selection.getBeginIndex();
        end = Selection.getEndIndex();
    }
    Mouse.addListener(MyListner);
};
// l'appuie sur le bouton nommé "boldButton" devrait mettre en gras la partie sélectionnée avec la sourie
// c'est à ce moment là que la dite séelection perd de focus et l'action ne se fait pas du coup
boldButton.onRelease = function() {
// On restaure le focus en le donnant au textField (là j'ai un doute sur  comment je m'y prend)
    Selection.setFocus("txtfld");
// Recuperer les indices
    Selection.setSelection(beg, end);
    formatCourant = mc.txtfld.getTextFormat(beg, end);
// changer le TextFormat
    formatCourant.bold = !formatCourant.bold;
// Appliquer le format à la sélection
    mc.txtfld.setTextFormat(0, mc.txtfld.length, formatCourant);
};

En espérant que j'ai bien expliqué mon problème, j'implore votre bienveillance pour m'aider à voir ce ke je ne vois pas encore

Merci beucoup
mercredi 2 août 2006 à 10:09:38 | Re : Probleme de selection de texte/ focus/Selection..

gyome314

Au premier coup d'oeil, je vois plusieurs erreures dans ton script :

1) ton Mouse.addListener(MyListner); n'est pas au bon endroit, il est dans ta fonction onMouseUp(), il doit se situé après !

2) lorsque tu cliques sur ton bouton, ce n'est pas l'action du bouton qui s'effectue, mais c'est encore ta fonction onMouseUp() qui doit prendre le dessus, puisqu'elle "phagocyte" toute les actions de "clic" de l'animation...

Je n'ai pas LA solution en tête, mais j'ai déjà fait un traitement de texte dans ce genre... je t'envois de infos complémentaires si je le retrouve (mais c'était il y a longtemps)

Essaies de repensez ton script sans utiliser de MouseListener, sinon, tu rend inactif tous tes boutons...

Bon courage, A+
Gyome
mercredi 2 août 2006 à 10:39:29 | Re : Probleme de selection de texte/ focus/Selection..

gyome314

J'ai retrouvé une solution qui marche est qui simplifie de beaucoup le code :

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();
formatCourant.bold=false;
// Variable de début et fin de la sélection
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);
};

A+
bon courage
Gyome

mercredi 2 août 2006 à 19:27:36 | Re : Probleme de selection de texte/ focus/Selection..

simojava

Merci beaucoup gyome314, ça marche parfaitement.
Il ya aussi cette solution:

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);
}
Mouse.addListener(MyListner);
};

jeudi 3 août 2006 à 09:03:48 | Re : Probleme de selection de texte/ focus/Selection..

gyome314

Ce qui est bien avec Flash, c'est qu'il y a toujours une infinité de facons de faire... ;)

Bon courage pour la suite.

Gyome.



Cette discussion est classée dans : mc, focus, selection, txtfld, formatcourant


Répondre à ce message

Sujets en rapport avec ce message

fonction qui fait ramer ma machine [ par mikouRoux ] Salut à tous,Merci beaucoup pour votre aide ces dernier jours. Sans vous je ne serais jamais parvenu à faire mon petit programme.A présent, tout comme créer une boucle [ par mikouRoux ] Salut,Je ne comprend pas comment synthétiser les lignes de codes suivantes en une petite boucle claire qui incrémente le numéro du dot.._mc. Quelqu'un toujours mon 'i' qui se bloque à la valeur max [ par mikouRoux ] ReResalut,J'espère que vous n'allez pas finir par en avoir mare de moi et de mes questions stupides :DSurtout toi embalmer qui déjà m'a sauvé la vie 2 deplacement régulier d'un MC - boutons gauche et droite [ par Stofff ] Salut, je crée un site perso et j'aimerai qu'un movie clip (une bande d'images vraiment large) soit mobile grâce à deux boutons, gauche et droite, le _alpha non reconnu [ par mikouRoux ] Salut,Pourquoi quand je tape 50 pour la valeur alpha de randomLine_mc.lineStyle, je récupère 100 dans mon trace ?!randomLine_mc.lineStyle(1, 0xffffff, deplacement d'un personnage pour un jeu [ par mystif ] bonjour,je suis débutant et essaie de faire un petit jeu.le probleme est le suivant : je parviens a deplacer mon personnage, avec les touches directio formule pour dézoomer [ par mikouRoux ] Salut,Me revoilà avec un nouveau problème. Cette fois ci, c'est juste la façon de poser correctement une formule qui me pose problèmeLa fonction ci-de centre une image sur un clip [ par jobrider ] salut  je cherche à centrer le positionnement d'une image qui s'affiche dynamiquement dans un mc (cible) :les images se posent à partire du centre du Gallerie Flash [ par theneoshaman ] Bonjours amis Flasheurs !Je suis en train de créer une gallerie dynamique en flash (mon dieu, que c'est original !) et j'ai un pb (sans déconner :p).. Travelling sinus wave [ par gimbalock ] Bonjour à tous, Je reconre un petit problème en action script sur les APIdrawings. Je cherche a dessiner une sinusoide qu se propage. Je dessine la si


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales