我想格式化数字以显示 00而不是0 ,以及01,02 ... 10,11,
答案 0 :(得分:3)
function formatNumber(number) : String {
if (number > 10)
return number;
else
return '0' + number;
}
答案 1 :(得分:1)
您无法格式化数字以具有前导0填充。但由于您需要此功能来格式化NumericStepper组件中的数字显示,因此您可以在每次值更改时简单地格式化输出textField中的文本。
我为你写了一个小例子。创建一个新的AS3 FLA,向舞台添加NumericStepper,将其实例名称设置为“stepper”。然后将Main.as设置为主类。
Main.as:
package {
import fl.controls.NumericStepper;
import flash.text.TextField;
import flash.events.Event;
import flash.display.MovieClip;
public class Main extends MovieClip{
public var stepper:NumericStepper;
public function onStepperChange (ev:Event) : void {
updateStepper();
}
private function updateStepper() : void {
var num:String = stepper.value > 10 ? "" + stepper.value : "0" + stepper.value;
stepper.textField.text = num;
}
public function Main() {
updateStepper();
stepper.addEventListener (Event.CHANGE, onStepperChange);
}
}
}
答案 2 :(得分:1)
也许这是推测我,但你想在某种时间显示中代表秒或分钟?使用Flex,一种方法是使用Date对象和DateFormatter。这样你就可以提供格式字符串来输出你想要的时间。
var seconds:int = 4;
var date:Date = new Date();
date.seconds = seconds;
var formatter:DateFormatter = new DateFormatter();
formatter.formatString = "SS";
trace(formatter.format(date));
答案 3 :(得分:0)
如果使用spark.components,则NumericStepper具有valueFormatFunction属性。 如果您正在使用fl.controls,那么我认为上面使用NumericStepper上的Event.CHANGE的解决方案是最好的。
这是我在使用spark.components.NumericStepper
时的方法var num_fld:NumericStepper = new NumericStepper();
num_fld.valueFormatFunction = numericFieldFormat;
private function numericFieldFormat(num:Number) : String {
return((num < 10) ? '0' + String(num) : String(num));
}
答案 4 :(得分:0)
如果你在Flex 3中,你无法直接访问inputField,但很容易通过使用mx_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"/>
和
<mx:Script>
<CDATA[[
protected function stpprHour_changeHandler(event:NumericStepperEvent):void {
formatStepper(stpprHours);
}
protected function stpprMinutes_changeHandler(event:NumericStepperEvent):void {
formatStepper(stpprMinute);
}
protected function formatStepper(stepper : NumericStepper) : void {
if(stepper.value<10) stepper.mx_internal::inputField.text = "0" + stepper.value;
}
]]>
</mx:Script>