0

テキスト コントロールの横に DateChooser コントロールがあり、マウスを左クリックしてテキストを選択し、マウス ボタンを押したままにして、datechooser コントロール上でマウス ボタンを離すと、selectedDate 値がホバリングしている日付に変更されます。以上。これに問題があるユーザーがいますが、2 つのコントロールが近接しているために意図せず発生します。この影響を止める方法が見つかりません。基本的に、ユーザーが実際にカレンダーコントロールをクリックした場合にのみ selectedDate を変更したいと思います。mouseDown またはクリックします。これらのイベントで関数を呼び出しても、この動作は変わりません。コントロールが mouseUpEvent の日付を変更できないようにする方法が必要です (私は思います)。

4

1 に答える 1

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>
于 2010-12-14T00:01:18.203 に答える