我需要灵活应用程序的时间选择器,据我所知,没有UI组件以比每天更精细的分辨率(Date
组件)操纵DateChooser
个对象
Flex的最佳选择时间是什么?我非常喜欢像Libre中的Free和/或Free中的Free。
答案 0 :(得分:5)
也许这会有所帮助: http://blog.georg-graf.com/archives/301
答案 1 :(得分:4)
这应该适合您:http://joelhooks.com/2008/10/11/flex-date-and-time-datetime-picker-control/
上面有一个演示和指向源代码的链接。
答案 2 :(得分:2)
如果您只想编辑时间,请在此处找到解决方案:
http://weflex.wordpress.com/2011/02/17/flex-timeinput-component/
答案 3 :(得分:1)
在Adobe网站上找到此信息(Google搜索的第一个结果) http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&extid=1400019
您可以扩展DateChooser组件以添加上述功能。
答案 4 :(得分:1)
雅虎! Astra TimeInput和TimeStepper非常有用。
http://developer.yahoo.com/flash/astra-flex/timeinput/
http://developer.yahoo.com/flash/astra-flex/timestepper/
然而,在使用Flex 4 SDK时显然存在问题,而且似乎是Yahoo!目前还没有计划更新他们的Astra组件。
您可能需要查看此链接以了解适用于Flex 4的版本。 https://github.com/joshtynjala/astra-flex
我认为时间输入将是原生Flex SDK组件的良好候选者。
答案 5 :(得分:0)
尝试以下代码:这对于输入没有AM / PM
的HH:MM 12hr格式非常有用MXML代码:
<Timepicker maxChars="5" restrict="0-9" />
ActionScript代码:
package
{
import flash.events.KeyboardEvent;
import mx.controls.TextInput;
public class Timepicker extends TextInput
{
public function Timepicker()
{
}
override protected function keyUpHandler(event:KeyboardEvent):void
{
super.keyUpHandler(event);
if (text.length == 0)
{
return;
}
var keyDel:Boolean=false;
if (event.charCode == 8 || event.charCode == 46)
keyDel=true;
var numberString:String=text;
if (keyDel)
text=numberString;
if (numberString.length > 0 && !keyDel)
{
if (numberString.length == 2 && numberString.indexOf(":") == -1)
{
text=numberString;
textField.appendText(":");
}
else if (numberString.length >= 4 && Number(numberString.charAt(3)) > 5)
{
text=numberString.substr(0, 3)
}
else if (numberString.length == 3 && numberString.charAt(2) != ":")
{
if (Number(numberString.charAt(2)) <= 5)
{
var fourthDigit:String=numberString.charAt(2);
super.textField.text="";
super.textField.appendText(numberString.substring(0, 2) + ":" + fourthDigit);
}
else
{
super.textField.text="";
super.textField.appendText(numberString.substring(0, 2) + ":");
}
}
textField.setSelection(textField.length, textField.length);
}
}
override protected function keyDownHandler(event:KeyboardEvent):void
{
super.keyDownHandler(event);
var keyDel:Boolean=false;
if (event.charCode == 8 || event.charCode == 46)
keyDel=true;
super.text=text;
if (super.text.length == 0)
{
var inputVal:String=String.fromCharCode(event.charCode);
if (Number(inputVal) > 1)
{
super.textField.appendText("0" + inputVal + ":");
}
}
super.textField.setSelection(super.textField.length, super.textField.length);
}
}
}