0

我正在构建一个闪存日历,但它是针对学年的,所以第一帧是今年的八月,最后一帧是明年的七月。这样,8 月是第 1 帧,9 月是第 2 帧,直到 7 月的第 12 帧。话虽如此,我编写了一些代码来使日历从当月的帧开始。所以.getMonth()八月的返回值是 7,然后我减去 6 等于帧 1 或八月。

一切正常,花花公子,但由于某种原因,它在 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;
}
4

3 回答 3

4

试试这种方式:

stop();

var done:Boolean;

if (!done) {
    var date:Date = new Date();
    gotoAndStop(((date.getMonth()+6)%12) + 1);
    done=true;
}
于 2013-07-09T18:53:29.043 回答
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;
}
于 2013-07-09T18:50:00.433 回答
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;
}

数学可以简单一点,但我的大脑不喜欢将月份视为零索引!

于 2013-07-09T18:40:39.867 回答