我正在制作一个flash日历,但它是为了学年,所以第一帧是当年的8月,最后一帧是明年的7月。这种方式8月是第1帧,9月第2帧,直到7月第12帧。据说我写了一些代码,使日历从当月的框架开始。因此,8月.getMonth()
的返回值为7,然后我将6减去等于第1帧或8月。
一切都很好,花花公子但是由于某些原因它在12月被卡住了。 12月之后的任何月份(即1月至7月),它将在12月开放。即使我的trace()
显示了应该开始的正确帧编号,它也会这样做。
我有什么遗漏或者我只是错了吗?
stop()
//Start at current month
var done:Boolean;
if (!done) {
//Code in here only runs once
var date:Date = new Date();
var which_month:int = date.getMonth();
if(which_month < 6) {
gotoAndStop((which_month + 6));
trace((which_month + 6));
} else {
gotoAndStop((which_month - 6));
}
done=true;
}
答案 0 :(得分:4)
以这种方式尝试:
stop();
var done:Boolean;
if (!done) {
var date:Date = new Date();
gotoAndStop(((date.getMonth()+6)%12) + 1);
done=true;
}
答案 1 :(得分:2)
试试这个:
stop()
//Start at current month
var done:Boolean;
if (!done) {
//Code in here only runs once
var date:Date = new Date();
var which_month:int = date.getMonth();
which_month += which_month > 7 ? -7 : 6
gotoAndStop(which_month);
done=true;
}
答案 2 :(得分:1)
这似乎可以解决问题
stop();
//Start at current month
var done:Boolean;
if (!done) {
//Code in here only runs once
var date:Date = new Date();
var which_month:int = date.getMonth();
which_month -= 7;
if(which_month < 0)
{
which_month += 12;
}
gotoAndStop((which_month + 1));
done=true;
}
数学可以变得更简单,但是我的大脑并不想将这些月份视为零索引!