0
我有一個動作腳本3代碼和一個大問題:我的日曆不顯示所有月份的日子,我無法弄清楚爲什麼。例如9月份有30天,但我的日曆只顯示26個。所以任何幫助都會很棒!我的代碼:日曆Flash動作腳本3
var daysMonth:int;//variable that holds a value of all days in the current month
var daysNumber:int;//counter for days
var weeks:Number;//variables that hold weeks of the date
var days:Number;//variables that hold current day
var year:Number;//variables that hold current year
var month:Number;//variables that hold current month
var firstDayOfMonth:Number;// variable that holds the position of first day in current month
var shapeButtonWidth:int = 35;
var shapeButtonHeight:int = 35;
var marginBetweenButtons:int = 2;
var calendarBackgroundColor:uint = 0x1e1e20;
var calendarNumberHolderColor:uint = 0x101010;
var calendarNumberTextColor:uint = 0xEAEAEA;
var dayHighlightBorderColor:uint = 0x893827;
var nowDate:Date = new Date();//get current date
days = nowDate.getDate() ;//get current day
month = nowDate.getMonth() ;//get current month
year = nowDate.getFullYear() ;//get current year
var firstDay:Date = new Date(year, month, 1);
firstDayOfMonth = firstDay.getDay();
var numberOfDays:Date = new Date(year,month , 0);
daysMonth = numberOfDays.getDate();
weeks = daysMonth/7;
if (weeks > 2)//making 5 lines in some cases when month starts with the end of the week
weeks = 6;
for (var i:int = 1; i <= weeks; i++) {
for (var j:int = 1; j <= 7 ; j++) {
daysNumber++;
if (firstDayOfMonth == 0)
firstDayOfMonth = 7;
var calendarBackground:Shape = new Shape();
calendarBackground.graphics.lineStyle();
calendarBackground.graphics.beginFill(calendarBackgroundColor,1);
calendarBackground.graphics.drawRoundRect(0,0,shapeButtonWidth * 8, shapeButtonHeight * 6,8);
calendarBackground.graphics.endFill();
calendarBackground.x = stage.stageWidth/2 - calendarBackground.width/2;
calendarBackground.y = stage.stageHeight/2 - calendarBackground.height/2;
this.addChild(calendarBackground);
setChildIndex(calendarBackground, 0);//set the background to have the lowest index
if (daysNumber <= daysMonth){
if (daysNumber >= firstDayOfMonth){
var dayC:Shape = new Shape(); //variable of custom class
dayC.graphics.lineStyle();
dayC.graphics.beginFill(calendarNumberHolderColor,1);
dayC.graphics.drawRoundRect(0,0,shapeButtonWidth, shapeButtonHeight,8);
dayC.graphics.endFill();
this.addChild(dayC);
var calendarNumbers:TextField = new TextField();
calendarNumbers.textColor = calendarNumberTextColor;
var myFormat:TextFormat = new TextFormat();
myFormat.size = 16;
calendarNumbers.defaultTextFormat = myFormat;
this.addChild(calendarNumbers);
calendarNumbers.text = String(daysNumber - firstDayOfMonth + 1);
dayC.x = calendarNumbers.x = (dayC.width + marginBetweenButtons) * (j - 1) + calendarBackground.x + 12;
dayC.y = calendarNumbers.y = (dayC.height + marginBetweenButtons) * (i-1) + dayC.height/2 + calendarBackground.y - 5;
if (daysNumber < 11)
calendarNumbers.x = dayC.x + 11;
else
calendarNumbers.x = dayC.x + 7;
calendarNumbers.y = dayC.y + 5;
if (calendarNumbers.text == String(days)){
var borderDay:Shape = new Shape();//here we draw border around current day
borderDay.graphics.lineStyle(4,dayHighlightBorderColor);//width and color of border around current day
borderDay.graphics.drawRoundRect(dayC.x+1, dayC.y+1, shapeButtonWidth - 3,shapeButtonWidth - 3,8);
borderDay.graphics.endFill();
this.addChild(borderDay);//adding border to stage
}
}
}
}
}
謝謝!