перетаскивание не должно происходить - PullRequest
0 голосов
/ 26 июля 2011

У меня есть холст, а поверх этого я поместил текстовую область. Тогда я добавил слушателей:

returnInfoCanvas.addEventListener (MouseEvent.MOUSE_DOWN, startdrag); returnInfoCanvas.addEventListener (MouseEvent.MOUSE_UP, stopdrag); returnInfoCanvas.getChildByName ('textareaName'). addEventListener (MouseEvent.MOUSE_DOWN, stopdrag);

и затем я вставил обработчики startdrag и stopdrag с функциями startdrag () и stopdrag ().

Что не так с этим кодом? Когда я нажимаю и пытаюсь выделить текст в текстовой области, весь холст перетаскивается, и я не могу выделить текст.

Chris

1 Ответ

1 голос
/ 26 июля 2011

Вот что я думаю, что происходит. Событие 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, что нужно иметь в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...