Couleur dans flash

Résolu
Signaler
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009
-
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009
-
Bonjour,

J'aimerait fairre un sorte de colorisation du code html dans flash car je cree un petit editeur html. Comment mettre des couleurs differentes dans le meme champs texte.

Jai chercher sur google et je n'est pas ma reponsse. J'ai legerement entendu parler des masques vectoriels mais je sait pas comment les utiliser pour la couleur.

Sinon, le mieux pour moi (je sait pas si c'est possible), c'est interdire le html que l'on ecrit mais l'autoriser (lorsque on colore le texte via php) quadn on le recoit. Mais a mon avis c'est plus php que flash pour sa (mais qui sait). Merci d'avance.

21 réponses

Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Permet moi de te donner quelques "conseil" sur le HTML dans Flash !
Tu peux tout à fais créer un éditeur de texte.

Le seul truc c'est qu'il faut savoir gérer les   Selection   .
Tu peux donc aisin déterminé la sélection qui est faite du texte, un truc dans ce genre la :

onEnterFrame = function() {
   act_select = Selection.getFocus();
   if (act_select eq texte) {
      deb_select = Selection.getBeginIndex();
      fin_select = Selection.getEndIndex();
      //curs_pos = Selection.getCaretIndex();
   }
}

Et puis apliquer tes nouveaux paramaètres de couleur dans ta sélection.

changerCouleur = function () { 
   Selection.setFocus(texte);
   Selection.setSelection(deb_select, fin_select);
   text_type.color = "0xCC6699";
   texte.setTextFormat(deb_select, fin_select, text_type);
}

Ce qui imploque donc que tu doit créer l'Objet comme ca par exemple :


text_type = new TextFormat();


Bon après il y a tous un tas de solution possbile, je crois qu'il existe plusieur source sur le sujet !
A toi de voir, c'est assez répétitif comme genre de codage.
Bon en tous cas bonne chance et bonne continuation.
P.S. --> Si ce post t'a aidé, mereci de l'accepter ^^

Aller @+
Flo
Messages postés
345
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
25 octobre 2007

Le mieux c'est d'utiliser un outils deja pret que j'ai vu sur un site, et qui sert a faire du BBcode(oui pas du HTML).
Aussi, cette idée de faire un éditeur HTML flash... . Lol, mais bon ^^, je te conseille pour sa de te tourner vers du C ou du C++ (language de prog un peu plus difficile mais qui servent ^^(aussi tu retrouve beaucoup de code identique a l'actionscript)).
Le logiciel que je te disais, je me rapelle plus le nom, mais des qu'je le vois j'te mp
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

Je connait deja le C/C++ (enfin un tout petit peu, de quoi ouvrir une fenetre window) mais je sait pas encore faire tout ce qui faut.

Il me semble que le bbcode cest un langage "inventer" qui est parser pour devenir du html non? Si c'est le cas (fort probable) ca ne marchera pas non plus.

J'espere qu'il y a une solution sinon je vais etre obliger de me tourner vers le C/C++ ou le Delphi (se qui serait plus embetant pour moi ^^)
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

J'ai trouver ceci

var monStyle = new TextField.StyleSheet();
_root.onEnterFrame = function() {
    monStyle.setStyle("p", {fontFamily:'Arial,Helvetica,sans-serif', fontSize:'12px', color:'#CC6699'});
    A.styleSheet = monStyle;
    A.text = "This is some text";
}

(ici A est mon champs text (les tests)) Le probleme c'est que je peut pu ecrire. Comment faire. A quoi correspond TextField. Ce ne serait pas "texte statique" par hasard. Si oui comment s'apelle "texte de saisie". Sa me debloquerait tout.

Merci d'avance
Messages postés
345
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
25 octobre 2007

Si tu connaissais assez bien le flash pour ne pas te tourner vers le C, et bien tu ne poserais pas cette question, ce qui appuie mon conseil de prendre un petit Dev C++ et de commencer le C et C++(sa servira pour les années qui te reste a vivre devant ton ordinateur )
Messages postés
345
Date d'inscription
jeudi 2 septembre 2004
Statut
Membre
Dernière intervention
25 octobre 2007

A oui, en montrant ce code tu me rapelle l'utilisation des style CSS dans un fichier flash, mais sa te servira pas, mais ce code, je vais le tester et je te dirais ^^.
Pour le texte, prend un texte dynamique editable, simplement...texte de saisie, mais avec variable(je pense).
Ton code est pas complet, et comme je connais pas ces trucs je peux aps te dire ...
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

J'ai un texte de saisie mais il est ajouter manuelement. Le C j'y songe, mais le faire en flash me fera passer le temps.

ps: j'utilise pas dev C++ ^^ et je peut manipuler les chaines de caractere mais pas encore mettre des couleurs (bientot). Le C/C++ ne fonctionne pas sur le web il me semble
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

P.S. --> Si ce post t'a aidé, mereci de l'accepter ^^ --> oui je sait comment sa marche ^^

Je croyer que flash ne permetter pas de gerer les selections (que c'etait propre au javascript). Mais il doit aussi gerer le cursseur donc sa va m'etre super utile.

Je vias tester,chercher sur google et dans l'aide et reecrire un post pour dire ce que j'aurait pas reussit (ou si j'aurait tout reussi).

Merci de ton aide
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

De rien ^^
Et oui oui il gère tous à fais le curseur ( comme je te l'est mis )





curs_pos =
Selection.getCaretIndex();




Je l'avais mis en commmentaire car tu n'y faisait pas allusion dans ta question ^^
Aller Bonne continuation et bonne chance !

@+
Bon Code
Flo
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

Oui c'est sa! ton code marche, il va surement me permettre d'ameliorer mon editeur mais j'ai encore 2 questions (merci encore pour ton aide).

J'ai en fait 2 champs, un ou on entre le texte, et l'autre ou on visualise la page.

Question 1: Comment colorer une simple balise <html> ou encore
. Je pourait le faire en php mais dans ce cas je doit laisser tomber ton script qui est la solution ideal. Il y aurait une sorte de fonction qui permetrer de colorer les < > et leur contenu.

Question 2: (plus besoin, j'ai reflechi :p)
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Mais pour ca tous se fais dans Flash :
Dans ton texte multiligne !

Une fois que tu a tous fais dans texte multiligne que tu a mis en forme ton texte ( Dans l'intégralité : Police, Taille, Couleur, Position, ... ). Tu exporte le code obtenu avec par exemple :

texte.htmlText

Ca t'évite de retraiter avec autre chose par la suite. Tous est absolument faisable dans Flash Player.

Aller @+
Flo
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

oui je sait bien mais comment colorer et dectecter les balises html
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Formate ton champ en HTML :



texte.html = true;
texte.htmlText ="...";

Ou alors tu fais ca en manuel dans l'environnement auteur ( panneau de propriété de texte ).
Bonne chance

@+
Flo
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

masi ton code me permet d'afficher le html. si je met
il ira a la ligne.
Je voudrait qu'il me fasse (exemple)
Il reste afficher et il a une couleur.
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Bon il faut essayer de voir ca via peu etre une class bassé sur   substring()   il y a forcément un moyen de trouver quelque chose. Je verrais ca plus tard peu être !
Aller @+
Flo
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

a mon avis il faudrait qq chose qui detecte un caractere.

si on rencontre un < alors on le colore lui est son contenu en bleu
si on rencontre un
Il faut savoir que les " peuvent etre remplacer par des '.

Il reste 2 details, les commentaires, mais sa c'est facile aussi
<!-- commentaire -->

Il me faudrait un fonction qui decte et remplace dans tout le code. (encore merci, je coyer que tu avait lacher mon affaire, sa me fait plaisir de recevoir un reponsse)
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Ce que tu me donne là, c'est un résumer en plus long de ce que je dis dans mon post juste avant ^^.
Ensuite, si c'était aussi facil, tu le ferrais par toi même je pense ^^

Bon je regarde ca et puis je te dis !
Aller @+
Flo
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Bon, j'ai pas le temps d'aller plus loin dans ma recher, pour l'instant !
Mais voila déjà une petite fonction de remplacement de caractère :

function Replace( contenu ) {
   tab = new Array(["<", "&lt;" ], [">", "&gt;" ]);
   verif_cont = contenu;
   for ( j = 0; j < contenu.length; j++ ){
      for ( n = 0; n < tab.length; n++ ){
         if ( verif_cont.substring( j, j + 1) == tab[n][0] ){
            verif_cont = verif_cont.substring( 0, j ) + tab[n][1] + ( verif_cont.substring( j + 1, _verif_cont.length));
         }
      }
   }
   return verif_cont;
}

Je me replencherais dessus, quand j'aurais oins de boulot. En attendant, tiens moi au courant si tu trouve quelque chose !
Aller @+
Flo
Messages postés
228
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2009

Merci , je regarde tout ces boucles :s

J'espere que tu aura vite moins de boulot
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Voila j'ai enfin trouvé le temps d'étudier le problème ^^
Bon alors c'est un truc très très gros , a optimiser, et il doit y avoir quelque bug par ci par la, ...
Enfin maintennt à toi de voir comment tu arrange ca :


texte.text = ""




onEnterFrame = function() {
   Remplace( texte.text )
}





function Remplace( contenu ){
   verif_bal = contenu;
   for ( k = 0; k < verif_bal.length; k++ ){
      if ( verif_bal.substring( k, k + 1) == "<" ){
         deb_selec_b = k;
      }elseif ( verif_bal.substring( k, k + 1) == ">" ){
         fin_selec_b = k + 1;
         formatCourant_b = texte.getTextFormat( deb_selec_b, fin_selec_b );
         formatCourant_b.color = "0xFF0000";
         texte.setTextFormat(deb_selec_b, fin_selec_b, formatCourant_b);
         verif_att = verif_bal.substring( deb_selec_b, fin_selec_b )
         for ( j = 0; j < verif_att.length; j++ ){
            if ( verif_bal.substring( j, j + 1 ) == " " ){
               deb_selec_a = j + 1;            }elseif ( verif_bal.substring( j, j + 2 ) "' " || verif_bal.substring( j, j + 2 ) '" ' || verif_bal.substring( j, j + 2 ) == "'>" || verif_bal.substring( j, j + 2 ) == '">' ){
               fin_selec_a = j + 1;
               formatCourant_a = texte.getTextFormat( deb_selec_a, fin_selec_a );
               formatCourant_a.color = "0x0000FF";
               texte.setTextFormat(deb_selec_a, fin_selec_a, formatCourant_a);
               verif_val = verif_bal.substring( deb_selec_b, fin_selec_b )
               for ( i = 0; i < verif_val.length; i++ ){
               if ( verif_bal.substring( i, i + 2 ) == "='" || verif_val.substring( i, i + 2 ) == '="' ){
                  deb_selec_v = i + 1;               }elseif ( verif_bal.substring( i, i + 2 ) "' " || verif_val.substring( i, i + 2 ) '" ' || verif_bal.substring( i, i + 2 ) == "'>" || verif_val.substring( i, i + 2 ) == '">' ){
                  fin_selec_v = i + 1;
                  formatCourant_v = texte.getTextFormat( deb_selec_v, fin_selec_v );
                  formatCourant_v.color = "0x00FF00";
                  texte.setTextFormat(deb_selec_v, fin_selec_v, formatCourant_v);
                  deb_selec_v = "";
                  fin_selec_v = "";
               }
            }
            deb_selec_a = "";
            fin_selec_a = "";
         }
      }
      deb_selec_b = "";
      fin_selec_b = "";
      }
   }
}


Voila, voila,
Bon Courage
Aller @+
Flo