Couleur dans flash

Résolu
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009 - 29 juil. 2006 à 13:24
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009 - 7 août 2006 à 01:32
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

fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
30 juil. 2006 à 00:09
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
3
bibi_81 Messages postés 345 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 25 octobre 2007
29 juil. 2006 à 13:35
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 13:39
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 ^^)
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 14:07
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bibi_81 Messages postés 345 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 25 octobre 2007
29 juil. 2006 à 14:10
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 )
0
bibi_81 Messages postés 345 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 25 octobre 2007
29 juil. 2006 à 14:15
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 ...
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 14:44
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
30 juil. 2006 à 11:25
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
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
30 juil. 2006 à 11:39
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
30 juil. 2006 à 13:03
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)
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
30 juil. 2006 à 13:40
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
30 juil. 2006 à 13:43
oui je sait bien mais comment colorer et dectecter les balises html
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
30 juil. 2006 à 14:13
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
30 juil. 2006 à 14:16
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.
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
31 juil. 2006 à 22:48
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
1 août 2006 à 00:06
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)
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
1 août 2006 à 12:23
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
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
3 août 2006 à 13:49
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
0
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
3 août 2006 à 17:02
Merci , je regarde tout ces boucles :s

J'espere que tu aura vite moins de boulot
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
6 août 2006 à 13:32
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
0
Rejoignez-nous