Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 自定义dateField组件,在flex3的下拉日历中具有组合框和清除按钮_Apache Flex_Date_Flex3_Calendar - Fatal编程技术网

Apache flex 自定义dateField组件,在flex3的下拉日历中具有组合框和清除按钮

Apache flex 自定义dateField组件,在flex3的下拉日历中具有组合框和清除按钮,apache-flex,date,flex3,calendar,Apache Flex,Date,Flex3,Calendar,我插入了一个dateField组件。单击后,它将显示日历。我想在日历中添加两个组合框,一个显示小时(0到23),另一个显示分钟(0到59),以便用户可以选择时间和日期,并在文本输入中显示为日期和时间。我还想添加一个清除按钮,用于清除日历中选定的日期。既然日期字段本质上是一个文本输入加上日期选择器,为什么不自己做呢?还要添加两个组合框,使TextInput可编辑=“false”text=“{dateTime}”,其中dateTime是一个可绑定的字符串变量,您可以将DateChooser和两个组合

我插入了一个dateField组件。单击后,它将显示日历。我想在日历中添加两个组合框,一个显示小时(0到23),另一个显示分钟(0到59),以便用户可以选择时间和日期,并在文本输入中显示为日期和时间。我还想添加一个清除按钮,用于清除日历中选定的日期。

既然日期字段本质上是一个文本输入加上日期选择器,为什么不自己做呢?还要添加两个组合框,使TextInput可编辑=“false”text=“{dateTime}”,其中dateTime是一个可绑定的字符串变量,您可以将DateChooser和两个组合框中的值串联起来创建。调用在所有三个输入的更改事件上创建dateTime字符串的函数

最后,添加clear按钮,并让其click事件调用一个函数,在该函数中,您可以将DateChooser设置为today,将两个组合框设置为默认值,并根据需要更新dateTime字符串(根据尝试执行的操作将其设置为空白或当前日期/时间)

编辑: 你问得很好,我正在准备ACE考试,认为这是一个很好的练习,下面是我的想法。我在名为“components”的包中创建了以下自定义组件,并将其命名为“myCustomDateField.mxml”

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="resetDisplay()">
<mx:DateFormatter id="dateFormat" formatString="DD-MMM-YYYY JJ:NN" />

<mx:Script>
<![CDATA[

[Bindable]
public var dateTime:Date;

     private function updateDisplay():void {
    var userDate:Date = new Date();
    userDate.date = cal.selectedDate.date;
    userDate.month = cal.selectedDate.month;
    userDate.fullYear = cal.selectedDate.fullYear;
    userDate.hours = hour.value;
    userDate.minutes = minute.value;
    dateTime = userDate;
}

private function resetDisplay():void {
    var now:Date = new Date();
    cal.selectedDate = now;
    hour.value = now.hours;
    minute.value = now.minutes;
    dateTime = now;
}

]]>
</mx:Script>

<mx:Label text="Select Date and Time:" />
<mx:TextInput id="display" text="{dateFormat.format(dateTime)}" editable="false" />
<mx:DateChooser id="cal" yearNavigationEnabled="true" change="updateDisplay()" />
<mx:Label text="Hour:" />
<mx:NumericStepper id="hour" minimum="0" maximum="23" change="updateDisplay()" />
<mx:Label text="Minute:" />
<mx:NumericStepper id="minute" minimum="0" maximum="59" change="updateDisplay()" />
<mx:Button label="Clear" click="resetDisplay()" />

</mx:HBox>

在我的应用程序中,我在声明标记中添加了
xmlns:cust=“components.*”
,并插入了一个
,我可以使用
{myDate.dateTime}访问父项。


我做了一些设计假设,您可能会决定更改,比如格式化程序,我用NumericStepper替换了您的组合框

既然DateField本质上是一个文本输入加上一个DateChooser,为什么不自己做呢?还要添加两个组合框,使TextInput可编辑=“false”text=“{dateTime}”,其中dateTime是一个可绑定的字符串变量,您可以将DateChooser和两个组合框中的值串联起来创建。调用在所有三个输入的更改事件上创建dateTime字符串的函数

最后,添加clear按钮,并让其click事件调用一个函数,在该函数中,您可以将DateChooser设置为today,将两个组合框设置为默认值,并根据需要更新dateTime字符串(根据尝试执行的操作将其设置为空白或当前日期/时间)

编辑: 你问得很好,我正在准备ACE考试,认为这是一个很好的练习,下面是我的想法。我在名为“components”的包中创建了以下自定义组件,并将其命名为“myCustomDateField.mxml”

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="resetDisplay()">
<mx:DateFormatter id="dateFormat" formatString="DD-MMM-YYYY JJ:NN" />

<mx:Script>
<![CDATA[

[Bindable]
public var dateTime:Date;

     private function updateDisplay():void {
    var userDate:Date = new Date();
    userDate.date = cal.selectedDate.date;
    userDate.month = cal.selectedDate.month;
    userDate.fullYear = cal.selectedDate.fullYear;
    userDate.hours = hour.value;
    userDate.minutes = minute.value;
    dateTime = userDate;
}

private function resetDisplay():void {
    var now:Date = new Date();
    cal.selectedDate = now;
    hour.value = now.hours;
    minute.value = now.minutes;
    dateTime = now;
}

]]>
</mx:Script>

<mx:Label text="Select Date and Time:" />
<mx:TextInput id="display" text="{dateFormat.format(dateTime)}" editable="false" />
<mx:DateChooser id="cal" yearNavigationEnabled="true" change="updateDisplay()" />
<mx:Label text="Hour:" />
<mx:NumericStepper id="hour" minimum="0" maximum="23" change="updateDisplay()" />
<mx:Label text="Minute:" />
<mx:NumericStepper id="minute" minimum="0" maximum="59" change="updateDisplay()" />
<mx:Button label="Clear" click="resetDisplay()" />

</mx:HBox>

在我的应用程序中,我在声明标记中添加了
xmlns:cust=“components.*”
,并插入了一个
,我可以使用
{myDate.dateTime}访问父项。


我做了一些设计假设,您可能会决定更改,比如格式化程序,我用NumericStepper替换了您的组合框

您在创建一个组件来执行您的请求时遇到问题吗?如果没有,您是否有任何问题?您是否在创建组件以满足您的要求时遇到问题?如果没有,你有什么问题吗?谢谢韦德。我现在就试试看,我只是对在下拉日历中添加组合框和按钮感到困惑。如果你给我提供任何链接或样品将非常感谢。再次感谢。当你准备参加ACE考试时,还有一个问题。我正在用flex3做一个聊天桌面(air)应用程序。我有一个mxml组件,它将用定时器打开。我只想从主应用程序设置这个窗口的x和y位置。实际上,主应用程序在屏幕中间打开,这个窗口在屏幕的左上方打开,我希望它在右下角打开,使用动作脚本类,给我一个简单的解决方案。谢谢你……嘿……变量screenBounds:Rectangle=Screen.mainScreen.bounds;useralertWindow=新的UserAlert();useralertWindow.open(true);var nativeuseralertWindow:NativeWindow=useralertWindow.NativeWindow;nativeuseralertWindow.x=(screenBounds.width useralertWindow.width)nativeuseralertWindow.y=(screenBounds.height SeralertTwinDow.height)useralertWindow.mxml是我的自定义组件…它可能对一些OneHanks wade有用。我现在就试试看,我只是对在下拉日历中添加组合框和按钮感到困惑。如果你给我提供任何链接或样品将非常感谢。再次感谢。当你准备参加ACE考试时,还有一个问题。我正在用flex3做一个聊天桌面(air)应用程序。我有一个mxml组件,它将用定时器打开。我只想从主应用程序设置这个窗口的x和y位置。实际上,主应用程序在屏幕中间打开,这个窗口在屏幕的左上方打开,我希望它在右下角打开,使用动作脚本类,给我一个简单的解决方案。谢谢你……嘿……变量screenBounds:Rectangle=Screen.mainScreen.bounds;useralertWindow=新的UserAlert();useralertWindow.open(true);var nativeuseralertWindow:NativeWindow=useralertWindow.NativeWindow;nativeuseralertWindow.x=(screenBounds.width useralertWindow.width)nativeuseralertWindow.y=(screenBounds.height SeralertTwinDow.height)useralertWindow.mxml是我的自定义组件…它可能对某些人有帮助