我正在使用Flash CS3 - AS 3.0。
我有以下代码用于使图像在外部计数:我不确定你是否都熟悉幻灯片专业版(我不认为你需要为了帮助我)。
function albumStuff(event:SSPDataEvent) {
if (event.type=="albumData") {
total1.text = event.data.totalImages;
}
}
如果该文本字段中出现的数字为9,那么我如何才能使前导零出现?
我希望我的问题不会引起混淆。
答案 0 :(得分:4)
进一步优化Seanonymous的回答:
function addLeadingZero(val:Number, places:uint):String
{
var result:String = val.toString();
for(var i:int = result.length; i < places; i++)
{
result = '0' + result;
}
return result;
}
速度只有在迭代数百个字符串/数字时才会显着。
答案 1 :(得分:3)
function leadingZero(num : Number) : String {
if(num < 10) {
return "0" + num;
}
return num.toString();
}
答案 2 :(得分:1)
这是一个更好的方法,如果你有一个以上的小数位(如0001到0991之类的东西等)将起作用。
步骤1:创建一个占位符变量,其最大数量为0
var leadingZeroes:String =“000000000”;
第2步:将您的号码变成字符串
var intToString:String = String(myInteger);
第3步:根据数字中的字符数
,删除占位符的末尾leadingZeroes = leadingZeroes.substr(0,leadingZeroes.length-intToString.length);
步骤4:将连接的字符串打印到文本字段(或在任何地方使用)
TxtField.text =字符串(leadingZeroes + intToString);
瞧!
答案 3 :(得分:1)
将一个零添加到十个以下的数字是很好的&amp;好的,但是如果你想要更加彻底,这将允许你添加任意数量的零:
function alz( value:uint, places:Number ):String { //Add Leading Zeros
var result:String = value.toString();
while ( result.length < places ) {
result = '0' + result;
}
return result;
}
然后,您可以使用相同的函数来处理不同数量的前导零:
var timeText:String = alz( minutes, 2) + ":" +
alz( seconds, 2 ) + "." +
alz( milliseconds, 4 );
timeText:03:08.0042
答案 4 :(得分:0)
答案 5 :(得分:0)
这是一种单行方式:
private function leadingZeros(value:int, numDigits:int):String
{
return String(new Array(numDigits + 1).join("0") + String(value)).substr(-numDigits, numDigits);
}
但是,我不确定Array的join()方法是否比while循环更快。
此帖子与this
重复 然而,当我们谈论as3时,那个人的头衔中有“红宝石”。我建议让那个与此重复。