Editeur de texte

Soyez le premier à donner votre avis sur cette source.

Vue 17 430 fois - Téléchargée 3 797 fois

Description

Voila un petit éditeur de texte en FlashMX.
Il se base sur le principe du TextFormat de textField :
récupérer les propriétés du TextFormat de la sélection en cour, puis les modifier.

Il permet de mettre en gras, italique, souligner, indenter la ligne ou le bloc, pucer, centrer ou aligner a droite ou gauche, choisir l'interligne, la taille, la police, la couleur, d'ajouter un lien (et de le supprimer), de mémoriser un format, d'appliquer celui mémorisé, de gommer une partie du format, et d'appliquer des styles de format.

Comme il est n'est pas en FlashMX 2004, on ne bénéficiera pas des feuilles de styles qui auraient été bien pratique pour définir... le style ;-p

Source / Exemple :


function cleanFlash($source) {
    $source=str_replace('KERNING="0"','',$source);
    $source=str_replace('LETTERSPACING="0"','',$source);
    // ajuster les paragraphes
    $source=preg_replace("'<TEXTFORMAT([^>]*)><LI[^>]*>(.*?)</LI></TEXTFORMAT>'si","<li \$1>\$2</li>",$source);
    $source=preg_replace("'<TEXTFORMAT([^>]*)><P([^>]*)>(.*?)</P></TEXTFORMAT>'si","<p\$1\$2>\$3</p>",$source);
    $source=preg_replace("'<li([^>]*)>'i","<ul>
<li\$1>" ,$source);
    $source=preg_replace("'</li>'i","</li>
</ul>" ,$source);
    $source=preg_replace("'FACE=\"([^\"]*)\"'i","font-family:\$1;",$source);
    //$source=preg_replace("'LEADING=\"(\d+)\"'i","line-height:\$1px;",$source);
    //$source=preg_replace("'LEADING=\"(\d+)\"'i","line-height:1.\$1em;",$source);
    $source=preg_replace("'LEADING=\"(\d+)\"'i","",$source);
    $source=preg_replace("'SIZE=\"(\d+)\"'i","font-size:\$1px;",$source);
    $source=preg_replace("'COLOR=\"([^>]+)\"'i","color:\$1;",$source);
    $source=preg_replace("'ALIGN=\"([^\"]*)\"'i","text-align:\$1;",$source);
    $source=preg_replace("'BLOCKINDENT=\"(\d+)\"'i","margin-left:\$1px; margin-right:\$1px;",$source);
    $source=preg_replace("'INDENT=\"(\d+)\"'i","text-indent:\$1px;",$source);
    $source=preg_replace("'<FONT([^>]*)>'i","<span\$1>",$source);
    $source=preg_replace("'</FONT>'i","</span>",$source);
    // balise css clean
    $source=preg_replace("'<span ([^>]*)'i","<span style=\"\$1\"",$source);
    $source=preg_replace("'<p([^>]*)'i","
<p style=\"\$1\"",$source);
    $source=preg_replace("'<B>(.*?)</B>'si","<strong>\$1</strong>",$source);
    $source=preg_replace("'<I>(.*?)</I>'si","<em>\$1</em>",$source);
    $source=preg_replace("'<li([^>]*)'i","
<li style=\"\$1\"",$source);
    $source=preg_replace("'<li([^>]*)line-height'i","<li\$1margin-bottom",$source);
    // gommer les valeurs vides
    $source=preg_replace("'TARGET=\" *\"'i","",$source);
    $source=preg_replace("'style=\" *\"'i","",$source);
    $source=preg_replace("'style=\" +'","style=\"",$source);
    $source=preg_replace("'\040+'","\040",$source);
    $source=str_replace('</ul><ul>','',$source);
    $source=preg_replace("'<span([^>]*)></span>'",'',$source);
    // gommer les paragraphes inutiles pour des retour a la ligne
    $source=preg_replace("'<p *>(.*?)</p>'si","\$1<br />",$source);
    // gommer les valeurs par défaut :
    $source=preg_replace("'<p style=\"line-height:1.2em; text-align:LEFT;\">'i","<p>",$source);
   // $source=str_replace('<span style="font-family:Arial; font-size:12px; color:#333333;">','<span>',$source);
   // gommer les balises vides
    $source=str_replace('<strong></strong>','',$source);
    $source=preg_replace("'<span *>([^<]*)</span>'si","\$1",$source);
    $source=preg_replace("'<p>(.*?)</p>'si","\$1<br />",$source);
    $source=str_replace('<li style="margin-bottom:2px;">','<li>',$source);
    $source=preg_replace("'(\r\n|\n|\r)+'","\n",$source);
    return ($source);
}
function flashBack ($source) { // pour annuler le micro-encodage html de flash
    $source=str_replace("&quot;",'"', $source);
    $source=str_replace("&apos;","'", $source);
    $source=str_replace("&amp;","&", $source);
    $source=str_replace(">",">", $source);
    $source=str_replace("<","<", $source);
    //$source=str_replace('\\"','"', $source);
    //$source=str_replace("\\'","'", $source);
     $source=stripslashes ($source);
    return ($source);
}

Conclusion :


Merci a whitemagus pour sa première version (qui m'a mise sur la voie du textformat et non de l'insertion de balise).
Dans cette version le menu Fichiers ne me servait a rien, donc il ne fonctionne pas. Libre à vous de le faire marcher (comme whitemagus qui a utilisé les sharedobject).

Pti bug : l'interligne ne se met pas a jour lorsqu'on change la sélection (la valeur change, mais pas le chiffre lorsque l'on sélectionne autre chose)

Extension : si ca intéresse quelqu'un j'ai fait une moulinette PHP pour le texte HTML généré par flash, de manière à ce qu'il soit compatible w3c, et l'alléger (retirer les balises inutiles et les valeurs par défaut)

Enjoy

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

racattac13
Messages postés
62
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
14 février 2010
-
Salut

en effet Sympa , bien codé , propre mais un petit peu decu , je pensé que l'on pourrait retrouver une fonction de conversion du textformat de flash vers HTML. ( de preference au norme W3C) . comme ce que l'on retrouve sur le site http://www.flashtexteditor.com/ . j'y travail mais pas facile , une vrai usine a gaz. avecv pas mal de petit bug ... j'espere bientot pouvoir le distribuer ici et opensource.

a plus.
cs_jojoo
Messages postés
18
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
14 juin 2009
-
Parfait (10/10)

Mais ça serait bien s'il avait un bouton pour imprimer et que cette éditeur repère les balise html
cs_bali_balo
Messages postés
1381
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
-
ça serait sympa d'avoir une version Flex de cette source :)
Je vais peut être m'y mettre...

bali_balo....=]
Blacknight91titi
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
1 -
Bonjour,

Renseigne toi sur la class
Si tu dévellope en as2 :
- LoadVars
http://livedocs.adobe.com/flash/9.0_fr/main/wwhelp/wwhimpl/js/html/wwhelp.htm?href=00001790.html

Si tu dévellope en as3 :
- URLLoader
http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/net/URLLoader.html

Bonne journée
HTMLer
Messages postés
24
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
3 août 2009
-
Vraiment bravo, code fonctionnel, pas de bugs , aucun ralentissement, mais comment faire fonctionner la fonction sauvegarder ??
Je suis calé en PHP, mais je ne vois pas comment faire parler Flash et PHP, merci pour un petit lien tuto ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.