Ergebnis 1 bis 1 von 1
  1. #1
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913

    Kalender Klasse

    Halli Hallo!

    Hier haben wir eine Klasse, mit der man wunderbar einen Kalender bauen kann.

    PHP-Code:
    // 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=1x<=31x++) {

            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-Code:
    // 1. Schlüsselbild
    // 1 EBENE
    // calender class 
    PHP-Code:
    // 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)? 7wdays[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.weekendColorthis.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)? 7wdays[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)? 7wdays[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
    Angehängte Dateien Angehängte Dateien
    Geändert von womstar (11-11-2004 um 17:48 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •