Элемент управления Flex 3 DateChooser - изменения выбора даты для события MouseUp - PullRequest
0 голосов
/ 14 декабря 2010

Если у вас есть элемент управления DateChooser рядом с текстовым элементом управления, и вы щелкнули левой кнопкой мыши, чтобы выделить текст, затем продолжайте удерживать нажатой кнопку мыши и удерживать кнопку мыши нажатой, когда над элементом управления datechooser, значение selectedDate изменяется на дату вы зависли У меня есть пользователи, которые имеют проблемы с этим, и это происходит непреднамеренно из-за близости двух элементов управления. Я не могу найти способ остановить этот эффект. По сути, я бы хотел, чтобы selectedDate изменился только в том случае, если пользователь фактически щелкнул элемент управления календаря, т.е. MouseDown или нажмите. Вызов функций в этих событиях не меняет это поведение. Мне нужен способ отключить элемент управления от изменения даты на mouseUpEvent (я думаю).

1 Ответ

2 голосов
/ 14 декабря 2010

Это раздражающая ошибка, потому что вы не можете отменить события в DateChooser.Вот возможное решение:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
    <mx:Script>
        <![CDATA[
            private function preventDateChooserBug(e:MouseEvent):void {
                //set the mouseChildren property to false, not enabled because
                //that could cause an irritating flickering when clicking the 
                //text input box for focus
                dtc.mouseChildren = false;

                //add the event listener to stage so we get the mouse up event even
                //outside of the text input control
                stage.addEventListener(MouseEvent.MOUSE_UP, function(e2:MouseEvent):void {
                    dtc.mouseChildren = true;
                });

            }
        ]]>
    </mx:Script>
    <mx:TextInput x="10" y="10" id="txt" mouseDown="preventDateChooserBug(event)" />
    <mx:DateChooser x="178" y="10" id="dtc" />
</mx:Application>
...