1)TextAreaはRichEditableTextを使用します。RichEditableTextはSelectionManagerを使用します。SelectionManagerにはパブリック関数mouseDoubleClickHandlerがあります。mouseDoubleClickHandlerは、ParagraphElement(最終クラス)とそのfindPreviousWordBoundaryおよびfindNextWordBoundary関数を使用します。また、類似した名前のTextBlockの関数を使用します。また、TextBlockはplayerglobal.swcの一部です。
したがって、メソッドをオーバーライドする唯一の「プロフェッショナル」な方法は、SelectionManagerのハンドラーをオーバーライドし、RichEditableTextと一部のインフラストラクチャクラスを拡張してカスタムSelectionManagerを使用することで適用できます。
しかし、それは簡単な方法ではありません。
2)「。」の前後にスペース文字の1つを配置できます。(狭いものを好むか、それらの文字の1つが0の幅を持つカスタムフォントを作成します)。
rslt[0x0020] = true; //SPACE
rslt[0x1680] = true; //OGHAM SPACE MARK
rslt[0x180E] = true; //MONGOLIAN VOWEL SEPARATOR
rslt[0x2000] = true; //EN QUAD
rslt[0x2001] = true; //EM QUAD
rslt[0x2002] = true; //EN SPACE
rslt[0x2003] = true; //EM SPACE
rslt[0x2004] = true; //THREE-PER-EM SPACE
rslt[0x2005] = true; //FOUR-PER-EM SPACE
rslt[0x2006] = true; //SIZE-PER-EM SPACE
rslt[0x2007] = true; //FIGURE SPACE
rslt[0x2008] = true; //PUNCTUATION SPACE
rslt[0x2009] = true; //THIN SPACE
rslt[0x200A] = true; //HAIR SPACE
rslt[0x202F] = true; //NARROW NO-BREAK SPACE
rslt[0x205F] = true; //MEDIUM MATHEMATICAL SPACE
rslt[0x3000] = true; //IDEOGRAPHIC SPACE
//members of LineSeparator category
rslt[0x2028] = true; //LINE SEPARATOR
//members of ParagraphSeparator category
rslt[0x2029] = true;
//Other characters considered to be a space
rslt[0x0009] = true; //CHARACTER TABULATION
rslt[0x000A] = true; //LINE FEED
rslt[0x000B] = true; //LINE TABULATION
rslt[0x000C] = true; //FORM FEED
rslt[0x000D] = true; //CARRIAGE RETURN
rslt[0x0085] = true; //NEXT LINE
rslt[0x00A0] = true; //NO-BREAK SPACE
3)ですから、カスタムのダブルクリックハンドラーを使用したオプションはそれほど悪くないと思います。