将起始帧设置为当前月份

时间:2013-07-09 17:08:07

标签: actionscript-3 flash date

我正在制作一个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;
}

3 个答案:

答案 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;
}

数学可以变得更简单,但是我的大脑并不想将这些月份视为零索引!