0

我正在编写一个 Flex 应用程序,我遇到了我认为是一个奇怪的问题。

我想创建一个文本框和一个 DateChooser,因为 datefield 没有做我想要的,而且它是 Halo,所以我不能轻易给它皮肤。我希望 DateChooser 在我单击文本输入时显示。这是我的代码中的一个例外:

    <s:TextInput id="wholeDate" width="100"  
                 mouseOver="stopChangeToNormal();"
                 paddingRight="10"
                 click="date1.visible = true"
                 focusOut="date1.visible = false"/>
    <s:Button label="Go" width="70" />
</s:Panel>

<mx:DateChooser id="date1" 
                visible = "false"
                change="useDate(event);" 
                mouseOver="changeToNormalState = false;" 
                y="{wholeDate.y + buttonsGroup.y + 20}"
                x="{wholeDate.x + buttonsGroup.x - 175 }" />    

奇怪的是,如果我让它visible = "true"开始,它会起作用,但如果我拥有它,visible="false"它就不起作用!它显示了,但我选择的日期没有显示在框中,如果我将它设置为visible="true",但我不希望它最初可见。

有任何想法吗?

4

1 回答 1

1

我认为这实际上与 DateChooser 的初始可见性无关。您是否验证了您的事件处理程序确实被调用了,并且以有意义的顺序调用?问题似乎是,当您尝试在 DateChooser 中进行选择时,TextInput 会收到一个 focusOut 事件,该事件会隐藏 DateChooser,这显然会阻止它接收选择事件。我认为您需要在实际隐藏 DateChooser 时更有选择性。也许您需要推迟隐藏,以便它有机会首先响应选择。

于 2010-03-18T06:35:08.613 回答