Flex 3 DateChooser控件 - MouseUp事件的日期选择更改

时间:2010-12-13 23:36:43

标签: flex datechooser

如果您在文本控件旁边有一个DateChooser控件,并且您左键单击鼠标选择文本然后继续按住鼠标按钮并在日期选择器控件上方按下鼠标按钮,则selectedDate值将更改为日期你在徘徊。我有用户遇到此问题,并且由于两个控件的接近而无意中发生。我找不到办法阻止这种效果。基本上我希望selectedDate只在用户实际点击日历控件时改变,即。 mouseDown或单击。在这些事件中调用函数不会更改此行为。我需要一种方法来禁止控制更改mouseUpEvent上的日期(我认为)。

1 个答案:

答案 0 :(得分:2)

这是一个令人恼火的错误,因为你无法取消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>