Esiste un buon componente di selezione data / ora Flex (3)?
-
07-07-2019 - |
Domanda
Ho bisogno di un selettore del tempo per un'app flessibile e, per quanto ne so, non esiste un componente dell'interfaccia utente per manipolare gli oggetti Date
con una risoluzione più fine rispetto al giorno (il DateChooser
).
Qual è il momento migliore per scegliere Flex? Preferisco fortemente un componente Free as in Libre e / o Free as in Beer.
Soluzione
Forse questo potrebbe aiutare: http://blog.georg-graf.com/archives/301
Altri suggerimenti
Questo dovrebbe funzionare per te: http://joelhooks.com/2008/10/11/flex-date-and-time-datetime-picker-control/
C'è una demo e un link al codice sorgente proprio sopra di esso.
Se vuoi solo modificare l'ora, ecco una soluzione:
http://weflex.wordpress.com/2011/02/02 / 17 / flex-timeInput-componente /
Trovato questo sul sito Adobe (primo risultato nella ricerca di Google) http://www.adobe.com/cfusion/exchange/ ? index.cfm evento = extensionDetail & amp;. extid = 1400019
È possibile estendere il componente DateChooser per aggiungere la funzionalità sopra.
Yahoo! Astra TimeInput e TimeStepper sono utili.
http://developer.yahoo.com/flash/astra-flex/timeinput /
http://developer.yahoo.com/flash/astra-flex/timestepper /
Tuttavia, a quanto pare c'è un problema quando li si utilizza con l'SDK Flex 4 e sembra Yahoo! al momento non ha in programma di aggiornare i propri componenti Astra.
Potresti voler dare un'occhiata a questo link per una versione che funziona con Flex 4. https://github.com/joshtynjala/astra-flex
Penso che un input temporale sarebbe un buon candidato per un componente Flex SDK nativo.
Prova questo codice seguente: sarà utile per inserire il formato HH: MM 12 ore senza AM / PM
Codice MXML:
<Timepicker maxChars="5" restrict="0-9" />
Codice 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);
}
}
}