Datumsabfrage Adventskalender

Zinken

Erfahrenes Mitglied
Ahem, sorry, aber eine Funktion innerhalb einer Schleife zu definieren, ergibt keinen Sinn. Der Aufruf der Funktion sollte dort erfolgen, um Dir das komplette switch/case-Konstrukt zu ersparen. Du führst immer die gleiche Aktion auf unterschiedlichen Objekten aus - perfekt für eine for-Schleife...
Und nur am Rande: um von 0 bis 12 zu zählen, brauchst du kein 'unsigned integer'. 'int' tut es hier völlig.
Ohne jetzt den Rest Deiner Programmierung zu kennen, hier mal der Ansatz:
Code:
var zeit:Date = new Date();
var datum:Number = zeit.getDate();
var month:Number = zeit.getMonth();
var tueren:Array = new Array(); // Deine Türchen

init();

function init():void{
    
    // Alle Türchen in ein Array packen, um leichter darauf zugreifen zu können
    for (var k:int = 0; k < 12; k++){
        var obj:MovieClip = MovieClip(getChildByName("p"+k));
        obj.alpha = 1;        
        tueren.push(obj);
    } 
}

// Schleife durchläuft alle Türchen bis 'gestern' und öffnet sie
for (var i:int =0; i < datum; i++) {
    oeffne(tueren[i]);     // siehe weiter unten
}

// Türchen 'heute' wird anklickbar gemacht
var heute:MovieClip = tueren[datum];
heute.buttonMode = true;
heute.addEventListener(MouseEvent.CLICK, clickmich);


// Funktion, die beim Anklicken aufgerufen wird
function clickmich(e:MouseEvent):void {
    oeffne(e.target);
}

// Funktion zum Öffnen eines Türchens
function oeffne(obj:MovieClip):void {
    // Sofern das die Aktion zum Öffnen ist:
    Tweener.addTween(obj, {alpha:0, time:0.5,  transition:"easeOutCirc"});
}
Etwas verschachtelt, aber ich denke, so sollte die Funktionsweise klar werden...
Die Monatsabfrage musst Du natürlich noch irgendwo einbauen.