I think that replaceSel() acts on the rendered output rather than the
code, so it thinks that you want to actually display the text that you
entered rather than adding it to the code (hope that makes sense!)

You could scan through the textfield.htmlText value (i.e. the code) and
relate the selection index in the rendered output to the actual index in
the code, then insert your image code in the textfield.htmlText.
I have done this previously (for a different reason) by just running two
counters as I looped through each character in the code, one counter
counts every character and the other ignores characters that are part of
a tag.

Bit of a pain, but I hope it helps,
Giles

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Merrill,
Jason
Sent: 07 August 2006 23:25
To: Flashcoders mailing list
Subject: RE: [Flashcoders] WSIWYG HTML text editor in Flash - follow
onquestion

Oh, and to follow up with some further information:

It seems to only encode those HTML entities when I use
TextField.replaceSel().  If I just add the <img> tag string on to the
htmltext field value, it works:

//works:
test_txt.htmlText += "<img src=\"mountains.jpg\" width=\"350\"
height=\"120\" />";

//fails - shows literal text, and encodes entities:
test_txt.replaceSel("<img src=\"mountains.jpg\" width=\"350\"
height=\"120\" />");

Am I left with splitting the string in two, inserting the <img> tag, and
re-assembling the string?  Or is there a way to get replaceSel() to work
with HTML tags?

Thanks,

Jason Merrill
Bank of America
Learning & Organization Effectiveness - Technology Solutions 
 
 
 
 
 

>>-----Original Message-----
>>From: [EMAIL PROTECTED] [mailto:flashcoders- 
>>[EMAIL PROTECTED] On Behalf Of Merrill, Jason
>>Sent: Monday, August 07, 2006 5:55 PM
>>To: Flashcoders mailing list
>>Subject: [Flashcoders] WSIWYG HTML text editor in Flash - follow on
question
>>
>>Getting back to this question I had back on Aug 1, thanks for the
ideas.
>>I've built a basic HTML text editor in Flash using the TextFormat
class.
>>Since I need to save the resulting HTML string back to a database, it 
>>works great.
>>
>>However, now I need to insert images into the HTML - which isn't 
>>supported by the TextFormat class.  So I was thinking I could just 
>>insert an img tag string into the textField using 
>>TextField.replaceSel(), like this:
>>
>>test_txt.replaceSel("<img src=\"mountains.jpg\" width=\"350\"
>>height=\"120\" />");
>>
>>So that part works fine, but when I re-render the textField, the image

>>does not show (doesn't render as HTML), it shows the literal <img 
>>scr=...etc. characters in the textField (even though it is an HTML 
>>textfield).  I thought maybe I needed to re-render the textfield, so I

>>left the frame and then jumped back to it, and it still shows the 
>>literal HTML.  So in testing the value of the html TextField, I found 
>>the <> and \" characters I inserted have been changed to encoded 
>>entities in the HTML string:
>>
>>&lt;img src=&quot;mountains.jpg&quot; width=&quot;350&quot; 
>>height=&quot;120&quot; /&gt;
>>
>>Why is that and how can I fix this?   It would be pretty messy to use
>>the XML object to decode those entities - why are they getting
rendered
>>that way in the first place?
>>
>>Thanks,
>>
>>
>>Jason Merrill
>>Bank of America
>>Learning & Organization Effectiveness - Technology Solutions
>>
>>
>>
>>
>>
>>
>>>>-----Original Message-----
>>>>From: [EMAIL PROTECTED] [mailto:flashcoders-

>>>>[EMAIL PROTECTED] On Behalf Of James Booth
>>>>Sent: Tuesday, August 01, 2006 10:43 AM
>>>>To: 'Flashcoders mailing list'
>>>>Subject: RE: [Flashcoders] WSIWYG HTML text editor in Flash?
>>>>
>>>>I just did exactly this, a couple of days ago.  I created a class
that
>>can
>>>>apply any kind of supported HTML formatting.  The idea seemed
daunting
>>at
>>>>first, but the class is relatively small.  You can assign/remove
>>textfields
>>>>that it should "watch". I don't have it here with me right now, but
>>here's
>>>>the basics:
>>>>
>>>>It doesn't use replaceText at all.
>>>>
>>>>I have a switch statement for the various textformat options (some
are
>>>>Boolean (bold, italic, etc) and some have arguments (leading, size,
>>etc).
>>>>
>>>>When the textfield has focus use an interval to get the beginIndex
and
>>>>endIndex.  You can clear the interval onkillFocus.
>>>>
>>>>Then in your setFormat function
>>>>
>>>>Public function setFormat (type, arg):Void {
>>>>    var temp_fmt:TextFormat = currentField.getTextFormat(beginIndex,
>>>>endIndex);
>>>>
>>>>    switch (type)
>>>>    {
>>>>            case "bold":
>>>>            case "italic":
>>>>            case "underline":
>>>>            //etc...
>>>>            {
>>>>                    temp_fmt[type] = temp_fmt[type] == false ? true
>>:
>>>>false;
>>>>                    break;
>>>>            }
>>>>            case "leading":
>>>>            case "align":
>>>>            case "size":
>>>>            //etc...
>>>>            {
>>>>                    temp_fmt[type] = arg;
>>>>                    break;
>>>>            }
>>>>    }
>>>>    currentField.setTextFormat(beginIndex, endIndex, temp_fmt); }
>>>>
>>>>This should give you a head start.
>>>>
>>>>- James
>>>>
>>>>
>>>>-----Original Message-----
>>>>From: [EMAIL PROTECTED]
>>>>[mailto:[EMAIL PROTECTED] On Behalf Of
>>Merrill,
>>>>Jason
>>>>Sent: Tuesday, August 01, 2006 10:11 AM
>>>>To: Flashcoders mailing list
>>>>Subject: [Flashcoders] WSIWYG HTML text editor in Flash?
>>>>
>>>>Two related questions.  In a nutshell, trying to make a WSIWYG HTML
>>text
>>>>editor for Flash 7.
>>>>
>>>>Question 1:
>>>>
>>>>Has anyone created an HTML text editor component or class of some
kind
>>>>in Flash?  Basically, having a textfield containing a paragraph of
>>text
>>>>the user can apply bold, size, font, etc. to - I assume it would use

>>>>something like:
>>>>
>>>>textfield.replaceText(Selection.getBeginIndex(),Selection.getEndInde
x(
>>),
>>>>theNewString)
>>>>
>>>>or something to that effect.
>>>>
>>>>So to my second question, I was able to get the above working, but
the
>>>>html Textfield would not apply the new HTML tags, it would show them

>>>>literally when replaceText was used.  Initially, I set the text with

>>>>textField.htmlText = myText and renders fine with the bolding, but
>>>>textField.replaceText() seems to not allow the textfield to show the
>>>>bold tags applied - it shows the literal tag.   Any ideas?
>>>>
>>>>Basically, would like to create a WSIWYG HTML text editor (flash 7),
>>but
>>>>from what I read in the archives, it's a lot harder than it sounds
and
>>>>maybe not even possible in Flash right now, but I don't want to give
>>up
>>>>too early.  It seems that all the basic methods are available, there
>>are
>>>>just some quirks to work out with the Textfield class.
>>>>
>>>>Thanks,
>>>>
>>>>Jason Merrill
>>>>Bank of America
>>>>Learning & Organization Effectiveness - Technology Solutions
>>>>
>>_______________________________________________
>>[email protected]
>>To change your subscription options or search the archive:
>>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>>Brought to you by Fig Leaf Software
>>Premier Authorized Adobe Consulting and Training 
>>http://www.figleaf.com http://training.figleaf.com
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training http://www.figleaf.com
http://training.figleaf.com
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to