1) TextArea使用RichEditableText。 RichEditableText使用SelectionManager。 SelectionManager具有公共函數mouseDoubleClickHandler。 mouseDoubleClickHandler使用ParagraphElement(它是final類)及其findPreviousWordBoundary和findNextWordBoundary函數。 他們使用TextBlock的功能和相似的名字。而TextBlock是playerglobal.swc的一部分。
因此,通過覆蓋SelectionManager的處理程序,然後擴展RichEditableText和一些基礎結構類以使其使用您的自定義SelectionManager,可以應用覆蓋方法的唯一「專業」方式。
但這不是一個簡單的方法。
2)您可以在'。'周圍放置一個空格字符。 (更喜歡狹窄的字體或創建自定義字體,其中一個字符的寬度爲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)所以,我認爲你的選擇與自定義doubleclick處理程序沒有那麼差。
哇靠,這是信息。這給了我很多想法,感謝你在這裏徹底的:) –