I had a hard time finding a script for a calendar in actionscript 3, so I borrowed a couple techniques from Andrei Firoiu’s script in actionscript 2. It’s nothing major, just displays a calendar. Have fun.
////////////////////////////////////////////
// created by marcusJones - 11.19.2007 //
// based on the script by Andrei Firoiu. //
// do whatever you want with it. //
////////////////////////////////////////////
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class Calendar extends MovieClip{
var calendar:MovieClip = new MovieClip();
var monthsOfYear:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "Octomber", "November", "December");
var daysOfWeek:Array = new Array("Sunday", "Monday", "Tuesday", "Wennesday", "Thursday", "Friday", "Saturday");
var daysOfMonths:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var currentDate:Date = new Date();
var myDate:Date = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);//provided by Andrei Firoiu
var month_mc:MovieClip = new MovieClip();
var day_mc:MovieClip;
var days_mc:MovieClip = new MovieClip();
var daysNo:Number;
var startDay:Number;
var i:Number;
public function Calendar(){
publishMonth();
publishDays();
calendar.x = 20;
calendar.y = 20;
this.addChild(calendar);
}
public function publishMonth(){
var month_txt:TextField = new TextField();
month_txt.text = monthsOfYear[currentDate.getMonth()] + " " + currentDate.fullYear;
month_txt.autoSize = TextFieldAutoSize.LEFT;
var month_tf = new TextFormat();
month_tf.font = "HelveticaNeue Condensed";
month_tf.color = 0x000000;
month_tf.size = 20;
month_txt.setTextFormat(month_tf);month_mc.x = 30;
month_mc.y = 0;
month_mc.addChild(month_txt);
calendar.addChild(month_mc);
}
public function publishDays(){
daysNo = (currentDate.getFullYear()%4 == 0 && currentDate.getMonth() == 1 ? 29 : daysOfMonths[currentDate.getMonth()]);//provided by Andrei Firoiu
startDay = myDate.getDay();
var row:Number = 0;
for (i = 1; i < daysNo+1; i++){
day_mc = new MovieClip();
day_mc.name = "days"+i;
days_mc.addChild(day_mc);
//provided by Andrei Firoiu\\
day_mc.x = startDay*25;
day_mc.y = (row+1)*20;
loadDays();
startDay++;
if(startDay >= 7){
startDay = 0;
row++;
}
////////////////////////////
}
days_mc.x = -80;
days_mc.y = 20;
calendar.addChild(days_mc);
}
public function loadDays(){
var dayLabel:String = i.toString();
var holder:MovieClip = new MovieClip();
holder.name = dayLabel;
day_mc.addChild(holder);
var label_txt:TextField = new TextField();
label_txt.name = dayLabel+"_txt";
label_txt.autoSize = TextFieldAutoSize.RIGHT;
label_txt.text = dayLabel;
label_txt.mouseEnabled = false;
var day_tf = new TextFormat();
day_tf.font = "HelveticaNeue Condensed";
day_tf.color = 0x000000;
day_tf.size = 15;
label_txt.setTextFormat(day_tf);
holder.addChild(label_txt);
}
}
}