首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark RichEditableText中的getCharIndexAtPoint()等效项

Spark RichEditableText中的getCharIndexAtPoint()等效项
EN

Stack Overflow用户
提问于 2010-03-25 17:07:58
回答 4查看 1.4K关注 0票数 1

我想找到一种方法来获得基于鼠标x,y位置的基于火花的RichEditableText中的字符索引。

mx.controls.TextArea有一个受保护的getCharIndexAtPoint()方法,但我在Spark RichEditableText中找不到与此等效的方法,这令人失望。

有什么想法或建议吗?

EN

回答 4

Stack Overflow用户

发布于 2010-03-25 20:46:49

我明白为什么了。看起来RichEditableText使用FTE,而TextArea使用TextField,所以你可以只使用TextField::getCharIndexAtPoint。您也可以在某一点上没有char。

我已经很久没有看过FTE了,但我认为TextLine::getAtomIndexAtPoint会是一个很好的开始。此外,您还应该看看TLFTextField::getCharIndexAtPoint

票数 1
EN

Stack Overflow用户

发布于 2010-11-01 14:57:59

我正在寻找一个类似的解决方案,在back2dos的提醒下,我想出了以下解决方案,可能需要一些工作,但它是有效的

http://www.justinpante.net/?p=201

票数 1
EN

Stack Overflow用户

发布于 2010-12-03 02:09:51

下面是我使用的代码:

代码语言:javascript
复制
private function getCharAtPoint(ta:RichEditableText, x:Number, y:Number) : int 
{

    var globalPoint:Point = ta.localToGlobal(new Point(x, y));

    var flowComposer:IFlowComposer = ta.textFlow.flowComposer;

    for (var i:int = 0; i < flowComposer.numLines; i++){ 

        var textFlowLine:TextFlowLine = flowComposer.getLineAt(i);

        if (y >= textFlowLine.y && y < textFlowLine.height + textFlowLine.y)
        {
            return textFlowLine.absoluteStart 
                 + textFlowLine.getTextLine(true)
                     .getAtomIndexAtPoint(globalPoint.x, globalPoint.y);
        }
    }

    return -1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2514168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档