時分秒 (hh:mm:ss) の値を含んだ Date オブジェクトを selectedDate プロパティにセットすると、アイコンをクリックしたとき表示されるカレンダーに、セットした日にち (DD) がフォーカスされない…という不具合が発生します。
この現象、Flex 3 では解消されていますが、時間情報を含んだ日付情報を扱うような Flex 2 アプリを作るときには、注意が必要です。(余談ですが、fla ファイル (AS 2.0) で扱える DateField コンポーネントでは、上記現象は発生しません)
以下検証コード
<?xml version="1.0" encoding="utf-8"?>
<!-- DateFieldShotTest -->
<mx:Application
xmlns:mx = "http://www.adobe.com/2006/mxml"
layout = "vertical"
creationComplete = "init();">
<mx:Script>
<![CDATA[
private function dateOutput():void
{
traceText.text = String(comp_0_DF.selectedDate)+'\n'+
String(comp_1_DF.selectedDate)+'\n'+
String(comp_2_DF.selectedDate)+'\n'+
String(comp_3_DF.selectedDate)+'\n'+
String(comp_4_DF.selectedDate);
}
private function init():void
{
traceText.text = '';
comp_0_DF.selectedDate = new Date();
comp_1_DF.selectedDate = new Date(2007, 0, 23);
comp_2_DF.selectedDate = new Date(2007, 0, 23, 0, 0, 0);
comp_3_DF.selectedDate = new Date(2007, 0, 23, null, null, null);
comp_4_DF.selectedDate = new Date(2007, 0, 23, 12, 34, 56);
}
]]>
</mx:Script>
<mx:Style>
Label
{
font-weight: bold;
}
</mx:Style>
<mx:VBox width="400" textAlign="left">
<mx:HBox>
<mx:DateField id="comp_0_DF" />
<mx:Label text="new Date();" />
</mx:HBox>
<mx:HBox>
<mx:DateField id="comp_1_DF" />
<mx:Label text="new Date(2007, 0, 23);" />
</mx:HBox>
<mx:HBox>
<mx:DateField id="comp_2_DF" />
<mx:Label text="new Date(2007, 0, 23, 0, 0, 0);" />
</mx:HBox>
<mx:HBox>
<mx:DateField id="comp_3_DF" />
<mx:Label text="new Date(2007, 0, 23, null, null, null);" />
</mx:HBox>
<mx:HBox>
<mx:DateField id="comp_4_DF" />
<mx:Label text="new Date(2007, 0, 23, 12, 34, 56);" color="#CC0000" />
</mx:HBox>
</mx:VBox>
<mx:TextArea id="traceText" width="400" height="100" />
<mx:HBox>
<mx:Button label="trace" click="{dateOutput()}" />
<mx:Button label="reset" click="{init()}" />
</mx:HBox>
</mx:Application>