2010-03-18 43 views
0

我正在编写一个Flex应用程序,我遇到了我认为是一个奇怪的问题。DateChooser只有在开始时可见才能正确更新

我想创建一个文本框和一个DateChooser,因为datefield没有做我想做的事情,它是光环,所以我不能轻易剥皮。我希望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"那样显示,但我不希望它最初可见。

任何想法?

回答

1

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

+0

你又对啦!这是focusOut问题。我从TextInput中删除它,它工作。是的,事件根本没有被调用。非常感谢你 – Tam 2010-03-18 17:02:45

相关问题