Gordon Smith recently responded to a TextArea HTML text issue and he 
stated:

"Adobe is developing a new Text Layout Framework (TLF) which works 
with the new Flash Text Engine (FTE) APIs in Player 10. (It will be 
used in Flex 4.) TLF will not support all of HTML, but it will be 
more capable than TextField's htmlText."

I don't know what features are slated for TLF, but I'd like to put in 
a plug for some features that I desparately need in my work at 
customizing a TextArea/TextField component.

1) Better support for filtering keystrokes. We should have the 
ability to filter (call event.preventDefault() or equivalent) in the 
keyDownHandler() function. This allows to avoid the stupid hack of 
working around DELETE, BACKSPACE and keyboard navigation keys not 
being cancelable.

2) More control over copy/paste to clipboard. I recently posted an 
issue where if you set the htmlText property, copy to the clipboard 
loses all line breaks (unless I explicitly use <br/>). Ideally, 
there'd be an event or protected overridable function that indicates 
we're trying to do a copy/paste.

3) Ability to represent custom HTML tags or custom HTML attributes in 
a standard tag. I tried to store some metadata inside a <FONT> tag 
using a custom attribute, but I found that when I set the htmlText, 
and then examined the htmlText property after the set, the whole 
markup had been altered and "normalized", losing my custom 
attributes. It would be nice if this normalization did not occur.

4) Better support for caret to coordinates functions. There is a 
getCharBoundaries() function, but that returns a rectangle in virtual 
coordinates that does not account for the scroll positions. Adjusting 
for the horizontal scroll position is fairly easy because that is 
measured in pixels, but the vertical scroll position is measured in 
lines and calculating the correct viewport position is non-trivial 
and expensive (there are some posts on how to do this). Not to 
mention the fact that getCharBoundaries() returns null if the char is 
at EOL or in an empty line. This support is incomplete. Just adding a 
function like getCoordinatesAtCharIndex(charIndex:int):Point would 
help, or something similar to that.

5) A function get get the caret Index within the htmlText would also 
be useful, or more generally, getCharIndexInHtmlText
(charIndex:int):int where charIndex is the character index in the raw 
text property.

Thanks for your attention,
Pete

Reply via email to