womstar
Lounge-Member
Halli Hallo!
Hier haben wir eine Klasse, mit der man wunderbar einen Kalender bauen kann.
Beispiel.
Der Code ist etwas Chaotisch aber da mal drüber hinwegsehen
Die Klasse funktioniert auch einwandfrei in JavaScript.
Und als Anhang noch ein schöne Komponente, für die die es kompakter lieben.
Grüße Robert
Hier haben wir eine Klasse, mit der man wunderbar einen Kalender bauen kann.
PHP:
// calendar class
// Erstellt am 14.04.2004
// Von Robert Engelhardt
// Internetagentur More Style Berlin
// info[AT]more-style.de
calendar = function() {
// Definieren der Eigenschaften
this.days = new Array();
this.wdays = new Array();
this.month = new Number(new Date().getMonth());
this.year = new Number(new Date().getFullYear());
};
calendar.prototype.getSettingDays = function() {
// Methode zum Ermitteln der aktuellen Tage.
// Abhängig vom Monat.
//
// Rückgabewert Array
this.wdays = this.wdays.slice(0,0);
this.days = this.days.slice(0,0);
for(var x=1; x<=31; x++) {
var nextDay = new Date(this.year,this.month,x);
var firstDay = new Date(this.year,this.month,1);
if(nextDay.getMonth() != firstDay.getMonth()) {
break;
} else {
this.days[this.days.length] = x;
// Fühlen des Arrays mit dem Wochentag des jeweiligen Tages.
// Wert entspricht new Date().getDay()
this.wdays[this.wdays.length] = nextDay.getDay();
}
}
delete nextDay;
delete firstDay;
delete x;
return this.days;
};
calendar.prototype.getSettingWeekDays = function() {
// Methode zur Ermittlung der Wochentage.
// Diese Array ist deckungsgleich mit dem Array der Tage.
//
// Rückgabewert Array
if(this.wdays.length <= 0) {
this.getSettingDays();
}
return this.wdays;
};
calendar.prototype.getSettingMonth = function() {
// Methode zur Ermittlung des Monats.
// Der Rückgabewert entspricht der Rückgabe von new Date().getMonth()
//
// Rückgabewert Number
return this.month;
};
calendar.prototype.getSettingYear = function() {
// Methode zur Ermittlung des Jahres.
//
// Rückgabewert Number
return this.year;
};
calendar.prototype.next = function() {
// Methode zum Hochzählen der Eigenschaft Monat und Jahr.
//
// Rückgabewert keiner
if(this.month >= 11) {
this.year++;
this.month = 0;
} else {
this.month++;
}
};
calendar.prototype.back = function() {
// Methode zum Herunterzählen der Eigenschaft Monat und Jahr.
//
// Rückgabewert keiner
if(this.month < 1) {
this.year--;
this.month = 11;
} else {
this.month--;
}
};
Beispiel.
Der Code ist etwas Chaotisch aber da mal drüber hinwegsehen
PHP:
// 1. Schlüsselbild
// 1 EBENE
// calender class
PHP:
// 1. Schlüsselbild
// 2 EBENE
TextField.prototype.setFormat = function(s,b,f,c,a,lm) {
var format = new TextFormat();
format.size = s;
format.bold = b;
format.font = f;
format.color = c;
format.align = a;
format.leftMargin = lm;
return this.setNewTextFormat(format);
};
TextField.prototype.setFieldFormat = function(bo,bc,bg,ba,sa) {
this.border = bo;
this.borderColor = bc;
this.background = bg
this.backgroundColor = ba;
this.selectable = sa;
};
MovieClip.prototype.create3eck = function(l,t,w,h,c) {
this.moveTo(l,t);
this.lineStyle(0.5,0xFFFFFF,0);
this.beginFill("0x"+c,100);
this.lineTo(l+w,t)
this.lineTo(l+w/2,t-h);
this.lineTo(l,t);
this.endFill();
};
setCalender = function(px,py,s,bc,wc,wd,bg,fc,ff,fs) {
this.kalender = new calender();
this.textBorderColor = "0x"+bc;
this.weekendColor = "0x"+wc;
this.weekendDayColor = "0x"+wd;
this.textBgColor = "0x"+bg;
this.textFontColor = "0x"+fc;
this.textFieldFont = ff;
this.textFontSize = fs;
this.weekDays = ["MO","DI","MI","DO","FR","SA","SO"];
this.monaths = ["Januar","Februar","März","April",
"Mai","Juli","Juni","August","September",
"Oktober","Novenber","Dezember"];
this.initCalenderSheet(px,py,s);
};
setCalender.prototype.initCalenderSheet = function(px,py,s) {
var days = this.kalender.getSettingDays();
var monat = this.kalender.getSettingMonth();
var jahr = this.kalender.getSettingYear();
var wdays = this.kalender.getSettingWeekDays();
wdays = (wdays[0]==0)? 7: wdays[0];
var fieldW = 21;
var fieldH = 15
var count = 1;
var dayCount = 1;
var fieldName = "";
var colors = "";
_level0.createEmptyMovieClip("kalender",0);
_level0["kalender"]._x = px;
_level0["kalender"]._y = py;
for(x=0;x<7;x++) {
for(y=0;y<7;y++) {
fieldName = (x<=0)? this.weekDays[y]: "day"+dayCount++;
colors = (x<=0)? this.weekendDayColor:
(y>4)? this.weekendColor: this.textBgColor;
if(x<1&&y<1) {
_level0["kalender"].createTextField("blatt",0,0,0,(s*6)+(fieldW*7),fieldH);
with(_level0["kalender"]["blatt"]) {
setFormat(this.textFontSize,false,this.textFieldFont,this.textFontColor,"center",2);
setFieldFormat(true,this.textBorderColor,true,this.textBgColor,false);
text = this.monaths[monat]+" - "+jahr;
}
}
_level0["kalender"].createTextField(fieldName,count,(fieldW+s)*y,(fieldH+s)+(fieldH+s)*x,fieldW,fieldH);
with(_level0["kalender"][fieldName]) {
setFormat(this.textFontSize,false,this.textFieldFont,this.textFontColor,"center",2);
setFieldFormat(true,this.textBorderColor,true,colors,false);
if(x<=0) _level0["kalender"][fieldName].text = this.weekDays[y];
}
count++;
}
}
for(x=1;x<=35;x++) _level0["kalender"]["day"+((wdays-1)+x)].text = days[x-1];
_level0["kalender"].createEmptyMovieClip("back",count+1);
_level0["kalender"].createEmptyMovieClip("next",count+2);
with(_level0["kalender"]["back"]) {
create3eck(-5,10,10,10,"B5CDFF");
_rotation = -90;
_x = 5;
_y = fieldH/2;
kl = this.kalender;
mo = this.monaths;
}
_level0["kalender"]["back"].onPress = function() {
kl.back();
var days = kl.getSettingDays();
var wdays = kl.getSettingWeekDays();
wdays = (wdays[0]==0)? 7: wdays[0];
var monat = kl.getSettingMonth();
var jahr = kl.getSettingYear();
with(this) {
for(x=1;x<=35;x++) _parent["day"+x].text = "";
for(x=1;x<=35;x++) _parent["day"+((wdays-1)+x)].text = days[x-1];
_parent["blatt"].text = mo[monat]+" - "+jahr;
}
};
with(_level0["kalender"]["next"]) {
create3eck(-5,0,10,10,"B5CDFF");
_rotation = 90;
_x = ((s*6)+(fieldW*7)-10)-5;
_y = fieldH/2;
kl = this.kalender;
mo = this.monaths;
}
_level0["kalender"]["next"].onPress = function() {
kl.next();
var days = kl.getSettingDays();
var wdays = kl.getSettingWeekDays();
wdays = (wdays[0]==0)? 7: wdays[0];
var monat = kl.getSettingMonth();
var jahr = kl.getSettingYear();
with(this) {
for(x=1;x<=35;x++) _parent["day"+x].text = "";
for(x=1;x<=35;x++) _parent["day"+((wdays-1)+x)].text = days[x-1];
_parent["blatt"].text = mo[monat]+" - "+jahr;
}
};
};
new setCalender(100,100,2,"666666","DFEAFF","DFDFDF","ffffff","666666","arial",9);
Die Klasse funktioniert auch einwandfrei in JavaScript.
Und als Anhang noch ein schöne Komponente, für die die es kompakter lieben.
Grüße Robert
Anhänge
Zuletzt bearbeitet: