Apache flex 停止文本行的鼠标向下传播

Apache flex 停止文本行的鼠标向下传播,apache-flex,actionscript-3,Apache Flex,Actionscript 3,如何在不破坏函数的情况下阻止textline在应用程序中传播(?)事件 这就是我所拥有的 Application Component 1 RichEditableTextfield 组件1侦听多个子系统中的事件并查找: if (event.target is RichEditableTextfield) { // Do stuff here... } else { // Do other stuff } 但是RichEditableTextfield在每个文本行上发送Mouse

如何在不破坏函数的情况下阻止textline在应用程序中传播(?)事件

这就是我所拥有的

Application
  Component 1
     RichEditableTextfield
组件1侦听多个子系统中的事件并查找:

if (event.target is RichEditableTextfield) {
// Do stuff here...
} else {
// Do other stuff
}
但是RichEditableTextfield在每个文本行上发送MouseDown事件,组件1感到困惑,认为我想“做其他事情”而不是“在这里做事情…”,因为event.target是文本行

现在我有这个来阻止文本行进一步传播:

private function stopTextLineEvents():void
{
    if (this.textFlow.flowComposer) {
        for (var i:int = 0; i < this.textFlow.flowComposer.numLines; i++) {
            var flowLine:TextFlowLine = this.textFlow.flowComposer.getLineAt(i);
            var textLine:TextLine = flowLine.getTextLine(true);

            if (textLine) {
                textLine.removeEventListener(MouseEvent.MOUSE_DOWN,onTextLineDown);
                textLine.addEventListener(MouseEvent.MOUSE_DOWN,onTextLineDown);
            }

        }
    }
}

protected function onTextLineDown(event:MouseEvent):void
{
    event.stopPropagation();
    this.dispatchEvent(event.clone());
}
private函数stopTextLineEvents():void
{
if(this.textFlow.flowComposer){
for(变量i:int=0;i

它几乎可以工作,但我的问题是,当我有多行时,每次我单击一行(不是第一行)时,文本字段中的第一行都会得到锚定,而不是我单击的行。

为什么不检查RichEditableText或TextLine?是否尝试过event.preventDefault()@Amy,因为如果event.target是一个文本行,我不知道如何访问RichEditableTextfield,转到parent.parent.parent并不是一个很好的解决方案。@管理员尝试过,同样的问题也发生了,出于某种原因,我无法选择第一行以下的文本行。有时你不得不做一些不漂亮的事情,只是因为框架是如何构建的。如果您不能直接收听RichEditableText(并因此使用currentTarget),那么您别无选择,只能沿着树走。