Here’s a modification I made to the example http://code.google.com/p/flex-richtexteditor-html-utils/ to convert RTE to HTML. I added some logic to handle
- ’s and
- ’s a bit better.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" backgroundColor="#ffffff" creationComplete="run()" viewSourceURL="srcview/index.html"> <mx:Form width="100%" height="100%"> <mx:RichTextEditor width="100%" height="300" id="editor" text="Hello World!"/> <mx:FormItem label="RichTextEditor.htmlText" width="100%"> <mx:Text id="richHtml" text="Text" width="100%" height="150"/> </mx:FormItem> <mx:FormItem label="Html" width="100%"> <mx:Button label="Update" click="update();"/> <mx:Text id="html" text="Text" width="100%" height="299"/> </mx:FormItem> </mx:Form> <mx:Label text="(c) Firma JAKUBIAK, Antoni Jakubiak 2007"/> <mx:Script> <![CDATA[ import mx.controls.Alert; private function update():void { richHtml.text = editor.htmlText; html.text = richTextEditorToHtml( editor.htmlText ); } private function run():void { update(); } private function richTextEditorToHtml(str:String):String { // Create XML document var xml:XML = XML("<BODY>"+str+"</BODY>"); // temporary var t1:XML; var t2:XML; // Remove all TEXTFORMAT for( t1 = xml..TEXTFORMAT[0]; t1 != null; t1 = xml..TEXTFORMAT[0] ) { if(t1.child("LI").length() != 0){ trace(t1.childIndex()); delete t1.@LEADING; t1.setName("UL"); }else{ t1.parent().replace( t1.childIndex(), t1.children() ); } } // Find all ALIGN for each ( t1 in xml..@ALIGN ) { t2 = t1.parent(); t2.@STYLE = "text-align: " + t1 + "; " + t2.@STYLE; delete t2.@ALIGN; } // Find all FACE for each ( t1 in xml..@FACE ) { t2 = t1.parent(); t2.@STYLE = "font-family: " + t1 + "; " + t2.@STYLE; delete t2.@FACE; } // Find all SIZE for each ( t1 in xml..@SIZE ) { t2 = t1.parent(); t2.@STYLE = "font-size: " + t1 + "px; " + t2.@STYLE; delete t2.@SIZE; } // Find all COLOR for each ( t1 in xml..@COLOR ) { t2 = t1.parent(); t2.@STYLE = "color: " + t1 + "; " + t2.@STYLE; delete t2.@COLOR; } // Find all LETTERSPACING for each ( t1 in xml..@LETTERSPACING ) { t2 = t1.parent(); t2.@STYLE = "letter-spacing: " + t1 + "px; " + t2.@STYLE; delete t2.@LETTERSPACING; } // Find all KERNING for each ( t1 in xml..@KERNING ) { t2 = t1.parent(); // ? css delete t2.@KERNING; } //Group adjacent LI's together var str:String = xml.children().toXMLString(); var pattern:RegExp = /<\/UL>\s*<UL>/ixg; str = str.replace(pattern, ""); return str; } ]]> </mx:Script> </mx:Application>
thanks very much,I just need it!
thank’s