Check THIS out :)

Flex 1.5 - RichText Editor 

Found it once. I think it was in this group. Works pretty good.
Thanks for that.



import mx.core.UIComponent;
import mx.controls.Button;
import mx.controls.TextArea;
import mx.controls.ComboBox;

import mx.utils.Delegate;
//import com.avsa._general.components.editor.*;
//import com.avsa._general.components.colorpicker.*;

//class com.avsa._general.components.editor.Editor extends UIComponent {
class TextEditor extends UIComponent {
        
        static var symbolName:String="TextEditor";
        static var symbolOwner:Object = TextEditor;
        var className:String = "TextEditor";
        
        function TextEditor() {
        }
        
        function init():Void {
                super.init();
                invalidate();
        }
        
        var start:Number;
        var end:Number;
        
        var btBold:Button;
        var btItalic:Button;
        var btUnderline:Button;
        
        var btLeft:Button;
        var btCenter:Button;
        var btRight:Button;
        
        var cComboSize:ComboBox;
        var cComboFont:ComboBox;
        
        var cText:TextArea;
        
        var cTempField:TextField;
        
        var cTempFormat:TextFormat;
        
        //var cColor:ColorPicker;
        
        //temp
        var focusListener:Object
        
        
        function createChildren():Void {
                //========================================================
                // Buttons
                //========================================================
                createClassObject(Button, "btBold", 11, {label:"B"});
                createClassObject(Button, "btItalic", 12, {label:"I"});
                createClassObject(Button, "btUnderline", 13, {label:"U"});
                
                createClassObject(Button, "btLeft", 14, {label:"L"});
                createClassObject(Button, "btCenter", 15, {label:"C"});
                createClassObject(Button, "btRight", 16, {label:"R"});
                
                btBold.addEventListener("click", this);
                btItalic.addEventListener("click", this);
                btUnderline.addEventListener("click", this);
                
                btLeft.addEventListener("click", this);
                btCenter.addEventListener("click", this);
                btRight.addEventListener("click", this);
                
                btBold.move(0,0);
                btItalic.move(50,0);
                btUnderline.move(100,0);
                
                btLeft.move(0,20);
                btCenter.move(50,20);
                btRight.move(100,20);
                
                //========================================================
                // Combos
                //========================================================
                var aSizes:Array = new
Array(8,10,12,14,16,18,20,22,24,26,28,30,32,34);
                createClassObject(ComboBox, "cComboSize", 21,
{dataProvider:aSizes});
                
                var aFont:Array = new Array("Arial","Courier","Times New
Roman","Verdana");
                createClassObject(ComboBox, "cComboFont", 22,
{dataProvider:aFont});
                
                cComboSize.move(-200,0);
                cComboFont.move(-200,20);
                
                cComboSize.addEventListener("change", this);
                cComboFont.addEventListener("change", this);
                
                //========================================================
                // TEXT AREA
                //========================================================
                createClassObject(TextArea, "cText", 4, {html: true,
id:"cText", editable : false, htmlText : "test test"});
                cText.width = 300;
                cText.height = 150;
                
                cText.move(0,50);
                
                cText.addEventListener("keyUp", this);
                cText.addEventListener("mouseUp", this);
                cText.addEventListener("mouseOut", this);
                
                
                //========================================================
                // TEXT FIELDS
                //========================================================
                createTextField("cTempField", 5, 100, 100, 1, 1);
                
                
                cTempField.type = "Input";
                cTempField.multiline = true;
                cTempField.move(0,250);
                cTempField.border = true;
                cTempField.html = true;
                cTempField.text = "Ola";
                cTempField.visible= true;
                
                
                //========================================================
                // TEXT FORMAT
                //========================================================
                cTempFormat = new TextFormat();
                
                //========================================================
                // Color Picker
                //========================================================
                //createClassObject(ColorPicker, "cColor", 10, {});
                //cColor.move(150,0);
                
                //cColor.addEventListener("change", this);
                
                /*
                focusListener = new Object();
                focusListener.onSetFocus = function(oldFocus_txt,
newFocus_txt) {
                  //cText.text = "Old = "// + oldFocus_txt._name + "\nNew =
" + newFocus_txt._name;
                  //oldFocus_txt.border = false;
                  //newFocus_txt.border = true;
                  //newFocus_txt.text = "id = " + oldFocus_txt._parent.id;
                  if(newFocus_txt._parent.id == "cText")
                  {
                  Selection.setSelection(start,end);
                  }
                };
                Selection.addListener(focusListener);
                */
        }
        
        //========================================================
        // Handle Events Functions
        //========================================================
        function getIndex()
        {
                //if (Selection.getFocus() == "_level0._obj0.cText.label")
                //{
                start = Number(Selection.getBeginIndex());
                end = Number(Selection.getEndIndex());
                //}
                //cTempField.text = "Start = " + start + " End = " + end ;
                //getFormat();
        }
        
        function setAlign(type:String){
                cTempFormat.align = type;
        }
        
        function setBold(){
                cTempFormat.bold = (!cTempFormat.bold);
        }
        
        function setItalic(){
                cTempFormat.italic = (!cTempFormat.italic);
        }
        
        function setUnderline(){
                cTempFormat.underline = (!cTempFormat.underline);
        }
        
        function setTextSize(size:Number){
                cTempFormat.size = size;
        }
        
        function setTextFont(font:String){
                cTempFormat.font = font;
        }
        
        function setTextColor(color){
                cTempFormat.color = color;
        }
                      

        
        function getFormat()
        {
                cTempField.htmlText = cText.htmlText;
                cTempFormat = cTempField.getTextFormat(start,end);
        }



        function setFormat()
        {
                cTempField.setTextFormat(start,end,cTempFormat);
                cText.htmlText = cTempField.htmlText;
                
                Selection.setFocus(cText);
                //IntervalId = setInterval(setSelectionAfter,100);
                Selection.setSelection(start,end);
                //mx.controls.Alert.show("ok");
                //cTempField.text = "Start = " + start + "\nEnd = " + end;
                //Selection.setSelection(start,end);
        }

        /*
        var IntervalId:Number;
        function setSelectionAfter()
        {
                Selection.setFocus(cText.label);
                Selection.setSelection(start,end);
                clearInterval(IntervalId);
        }
        */
        function handleEvent(evt:Object):Void {
                
                utils.log.Logger.getInstance().dev(this," cText.htmlText:" +
cText.htmlText );
                switch(evt.type)
                {
                        case "click":
                        {
                                getFormat();
                                switch(evt.target._name)
                                {
                                        case "btBold": setBold(); break;
                                        case "btItalic": setItalic(); break;
                                        case "btUnderline": setUnderline();
break;
                                        case "btLeft": setAlign("left");
break;
                                        case "btCenter": setAlign("center");
break;
                                        case "btRight": setAlign("right");
break;
                                }
                                setFormat();
                                break;
                        }
                        case "change":
                        {
                                getFormat();
                                switch(evt.target._name)
                                {
                                        case "cComboSize":
setTextSize(evt.target.selectedItem); break;
                                        case "cComboFont":
setTextFont(evt.target.selectedItem); break;
                                        case "cColor":
setTextColor(evt.target.selectedColor); break;
                                }
                                setFormat();
                                break;
                        }
                        default: getIndex();
                }
        //cTempField.text = "Start = " + start + "\nEnd = " + end;
        }
}

> -----Ursprüngliche Nachricht-----
> Von: [email protected] [mailto:[EMAIL PROTECTED] Im
> Auftrag von Aldo Bucchi
> Gesendet: Mittwoch, 23. November 2005 07:15
> An: [email protected]
> Betreff: Re: [flexcoders] RTF Editor Integrated into Flex
> 
> Flex2 comes with a rich text editor component out of the box.
> check it out.
> 
> For flex1.5 though, I have no clue.
> 
> On 11/22/05, someguy7_7 <[EMAIL PROTECTED]> wrote:
> >
> > I have seen all the messages about the couple different flash rtf
> editors that people have created. Has anyone actually integrated one with
> flex? If so which one? How is it working?
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> > Flexcoders Mailing List
> > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives: http://www.mail-
> archive.com/flexcoders%40yahoogroups.com
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
> 
> 
> --
> ::::: Aldo Bucchi :::::
> mobile (56) 8 429 8300
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
> 
> 
> 
> 
> 



------------------------ Yahoo! Groups Sponsor --------------------~--> 
1.2 million kids a year are victims of human trafficking. Stop slavery.
http://us.click.yahoo.com/WpTY2A/izNLAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to