返回列表 回复 发帖

纯AS日历

var currentYear:Number;
var currentMonth:Number;
var currentDate:Number;
var monthArray = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
function createButton(buttonName:String, buttonLabel:String, buttonData:String, parentClip:MovieClip, xPos:Number, yPos:Number, buttonWidth:Number, buttonHeight:Number, buttonHandler:Function):Void {
var newClip:MovieClip = parentClip.createEmptyMovieClip(buttonName, parentClip.getNextHighestDepth());
newClip._x = xPos;
newClip._y = yPos;
newClip.moveTo(0, 0);
newClip.lineStyle(1, 0x666666);
newClip.lineTo(buttonWidth, 0);
newClip.lineTo(buttonWidth, buttonHeight);
newClip.lineTo(0, buttonHeight);
newClip.lineTo(0, 0);
newClip.endFill();
newClip.createTextField("labelField", newClip.getNextHighestDepth(), 2, buttonHeight/2-7, buttonWidth-4, 18);
newClip.labelField.text = buttonLabel;
newClip.buttonData = buttonData;
newClip.onRelease = function() {
  buttonHandler(this.buttonData);
};
}
function deleteButton(buttonName:String):Void {
this[buttonName].removeMovieClip();
}
function setWeek(year:Number, month:Number, date:Number):Void {
var thisDate:Date = new Date(year, month, date);
monthYearLabel.text = monthArray[month]+" "+year;
for (var i:Number = 0; i<7; i++) {
  deleteButton("day"+i+"button");
  createButton("day"+i+"button", String(thisDate.getDate()), thisDate.toString(), this, 60+(i*30), 40, 20, 20, handleDateSelected);
  thisDate.setDate(thisDate.getDate()+1);
}
}
function handlePreviousWeek():Void {
var thisDate:Date = new Date(currentYear, currentMonth, currentDate);
thisDate.setDate(thisDate.getDate()-7);
currentYear = thisDate.getYear()+1900;
currentMonth = thisDate.getMonth();
currentDate = thisDate.getDate();
setWeek(currentYear, currentMonth, currentDate);
}
function handleNextWeek():Void {
var thisDate:Date = new Date(currentYear, currentMonth, currentDate);
thisDate.setDate(thisDate.getDate()+7);
currentYear = thisDate.getYear()+1900;
currentMonth = thisDate.getMonth();
currentDate = thisDate.getDate();
setWeek(currentYear, currentMonth, currentDate);
}
function handleDateSelected(selectedDate:String):Void {
trace("handleDate:"+selectedDate);
}
function init():Void {
createButton("previousWeekButton", "<<", "", this, 30, 40, 20, 20, handlePreviousWeek);
createButton("nextWeekButton", ">>", "", this, 270, 40, 20, 20, handleNextWeek);
this.createTextField("day0Label", this.getNextHighestDepth(), 63, 22, 20, 20);
this.day0Label.text = "日";
this.createTextField("day1Label", this.getNextHighestDepth(), 93, 22, 20, 20);
this.day1Label.text = "一";
this.createTextField("day2Label", this.getNextHighestDepth(), 123, 22, 20, 20);
this.day2Label.text = "二";
this.createTextField("day3Label", this.getNextHighestDepth(), 153, 22, 20, 20);
this.day3Label.text = "三";
this.createTextField("day4Label", this.getNextHighestDepth(), 183, 22, 20, 20);
this.day4Label.text = "四";
this.createTextField("day5Label", this.getNextHighestDepth(), 213, 22, 20, 20);
this.day5Label.text = "五";
this.createTextField("day6Label", this.getNextHighestDepth(), 243, 22, 20, 20);
this.day6Label.text = "六";
this.createTextField("monthYearLabel", this.getNextHighestDepth(), 130, 5, 150, 20);
var todaysDate:Date = new Date();
todaysDate.setDate(todaysDate.getDate()-todaysDate.getDay());
currentYear = todaysDate.getYear()+1900;
currentMonth = todaysDate.getMonth();
currentDate = todaysDate.getDate();
setWeek(currentYear, currentMonth, currentDate);
}
init();
复制粘帖就可看到效果,有兴趣扩展一下
好代码收藏了
顺便问一下  我怎么还是发不了贴啊 只能回复
我的头衔是 游客(注册未发贴)  怎么提升成为正式会员啊 
支持!!:lol
偶是新手,进来学习学习
自己顶一下
:loveliness: 这个日历分不出当天,,,感觉是周历,,,,,,,,,,,,,

楼主能让她区别显示当天吗???,,,,,,,,,,,,,,,,,,,,,,,
请教一下:
  要做个自动计算时间的电子表,该怎么做??
自己参考书做了下:
var nctime;
nctime=new Date;
nc.clock.text=nctime.getHours()+":"+nctime.getMinutes()+"+"nctime.getSeconds();
nc._x=random(665);
nc._y=random(565);
但是总是说有误.
谁能指点下?

回复 #1 jisekai 的帖子

:victory:
呵呵,收藏!!!

二楼的朋友,好象混到5个积分就可以发贴了
:loveliness: 顶
真的貌似周历哦 !
怎么改字体颜色,和日历的位置啊
博客:http://hi.baidu.com/yidonan
谢谢,先收藏。
太强了吧...啥也不说了    :)
咋不能发心贴
收起:lol
原帖由 specater 于 2007-10-12 03:29 发表
请教一下:
  要做个自动计算时间的电子表,该怎么做??
自己参考书做了下:
var nctime;
nctime=new Date;
nc.clock.text=nctime.getHours()+":"+nctime.getMinutes()+"+"nctime.getSeconds();
nc._x=random ...
getMinutes()+"+"nctime这里少+号
new Date少();
this.onEnterFrame=function(){
}
全的就是
var nctime;
nctime=new Date();
this.onEnterFrame=function(){
nc.clock.text=nctime.getHours()+":"+nctime.getMinutes()+"+"+nctime.getSeconds();
nc._x=random(665);
nc._y=random(565);
}
不过nc._x=random(665);
nc._y=random(565); 出来的效果是满屏幕的到处闪哦~~
非常感谢分享源代码,太棒了,呵呵,谢谢了:lol


好复杂
看着有点找不着北..
不过先收着了..
为了能发贴,,,我奋斗着...
hehe  好东西  看看
谢了
收藏啦
返回列表