Вот что я думаю, что происходит. Событие Flex MouseEvent класса пузыри. Это означает, что когда вы щелкаете мышью в любом месте Canvas или его дочерних элементов, Canvas будет слышать и обрабатывать событие MouseDown (при условии, что все дочерние элементы разрешают этому событию продолжать всплывать). Вот почему Canvas показывает поведение при перетаскивании.
Чтобы предотвратить это, вы должны добавить обработчик MouseEvent.MOUSE_DOWN к вашей TextArea. В этом обработчике вы будете вызывать event.stopPropagation (). Это предотвращает всплытие MouseEvent в родительский контейнер и его обработку там. Ваше исправление может выглядеть примерно так ...
<TextArea>
...
protected function initializeHandler( event:FlexEvent ):void
{
this.addEventListener( MouseEvent.MOUSE_DOWN , mouseDownHandler );
}
protected function mouseDownHandler( event:MouseEvent ):void
{
event.stopPropagation();
}
...
</TextArea>
Убедитесь, что вы используете stopPropagation, а не stopImmediatePropagation, так как это остановит работу любых других обработчиков вашей текстовой области. Единственное предостережение в том, что я сам этого не сделал, поэтому вам может понадобиться добавить его в RichTextEditor компонента TextArea, что нужно иметь в виду.