Apache flex Flex NumericStepper在10以下的数字上具有前导0? 有没有办法让NumericStepper显示从0到10以下的数字
(如01、02、03…09、10、11)如果您使用的是Spark NumericStepper,您应该为属性添加一个函数。如果有人正在寻找仅光环版本:Apache flex Flex NumericStepper在10以下的数字上具有前导0? 有没有办法让NumericStepper显示从0到10以下的数字,apache-flex,numericstepper,Apache Flex,Numericstepper,(如01、02、03…09、10、11)如果您使用的是Spark NumericStepper,您应该为属性添加一个函数。如果有人正在寻找仅光环版本: package { import flash.events.Event; import mx.controls.NumericStepper; import mx.core.mx_internal; import mx.events.FlexEvent; use namespace mx_interna
package
{
import flash.events.Event;
import mx.controls.NumericStepper;
import mx.core.mx_internal;
import mx.events.FlexEvent;
use namespace mx_internal;
/**
* Added support to format time values.
*/
public class TimePickerNumericStepper extends NumericStepper
{
public function TimePickerNumericStepper()
{
}
/**
* @private
*/
override protected function createChildren():void
{
super.createChildren();
onValueCommit(null)
inputField.addEventListener(FlexEvent.VALUE_COMMIT,onValueCommit);
}
protected function onValueCommit(event:Event):void
{
if(value<10 && inputField.text.length==1){
inputField.text = "0" + inputField.text;
}
}
}
}
包
{
导入flash.events.Event;
导入mx.controls.NumericStepper;
导入mx.core.mx_internal;
导入mx.events.FlexEvent;
使用名称空间mx_internal;
/**
*增加了对时间值格式的支持。
*/
公共类TimePickerNumericStepper扩展NumericStepper
{
公共函数timepickernumericspepper()
{
}
/**
*@私人
*/
重写受保护的函数createChildren():void
{
super.createChildren();
onValueCommit(空)
inputField.addEventListener(FlexEvent.VALUE\u提交,onValueCommit);
}
受保护的函数onValueCommit(事件:事件):void
{
如果(值如果您在Flex 3中,您不能直接访问inputField,但可以使用mx\U internal轻松解决它
<mx:NumericStepper id="stpprHours" minimum="1" maximum="24" stepSize="1" creationComplete="formatStepper(stpprHours)" change="stpprHours_changeHandler(event)" value="1"/>
<mx:NumericStepper id="stpprMinutes" minimum="0" maximum="59" stepSize="1" creationComplete="formatStepper(stpprMinutes)" change="stpprMinutes_changeHandler(event)" value="0"/>
及
Yury-Euceda版本工作得很好。我想跟进以下内容,以将控件与事件处理程序解耦
private function init( event:FlexEvent ):void{
scheduleHour.addEventListener(Event.CHANGE,onStepperChange);
scheduleMinute.addEventListener(Event.CHANGE,onStepperChange);
scheduleHour.dispatchEvent(new Event(Event.CHANGE));
scheduleMinute.dispatchEvent(new Event(Event.CHANGE));
}
及
从没想过会有这样的待用房产。非常感谢。:)很好的一个:D我记得使用光环组件时,这真的是一个麻烦。如果你手动编辑数字步进器文本输入中的值,这并不总是有效。我如何解决这个问题?Thanks@MadBlack您是如何“手动”更新此值的?我查看代码已经有一段时间了,但我相当确定值w调用commitProperties/updateDisplayList函数后,您将使用format函数自动“更新”,这应该在设置新值时自动完成。可能是您正在做一些规避这一点的事情。我刚刚做了:我在一个小部件中放置了两个数字步长控件,其中一个具有format函数我声明添加一个前导零。我用format函数手动在数字步进控件中输入一个数字,然后打开另一个控件,然后再次返回。此时,在数字步进器中手动添加一个数字并没有触发format函数,数字很遗憾地保持为一个。我觉得格式功能仅与控件中的小箭头的交互有关。
private function init( event:FlexEvent ):void{
scheduleHour.addEventListener(Event.CHANGE,onStepperChange);
scheduleMinute.addEventListener(Event.CHANGE,onStepperChange);
scheduleHour.dispatchEvent(new Event(Event.CHANGE));
scheduleMinute.dispatchEvent(new Event(Event.CHANGE));
}
public function onStepperChange (ev:Event) : void {
var stepper:NumericStepper = ev.currentTarget as NumericStepper;
var num:String = stepper.value > 10 ? "" + stepper.value : "0" + stepper.value;
stepper.mx_internal::inputField.text = num;
}