Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-12-2005, 13:14   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Kalender - Wie filter ich die Sonntage raus

Hallo zusammen,

ich habe folgendes Problem. Ich möchte einen Kalender machen, der den Monat hinschreibt und danach die Wochentage, wobei der aktuelle Tag dann einen Rahmen bekommt. Soweit kein Problem. Nur wie finde ich jetzt heraus welche Tage Sonntage sind. die würde ich nämlich gerne fett machen.

Hier mal mein bisheriges Skript:

PHP-Code:
days = new Array('Sonntag''Montag''Dienstag''Mittwoch''Donnerstag''Freitag''Samstag''Sonntag');
months = new Array('Januar''Februar''März''April''Mai''Juni''Juli''August''September''Oktober''November''Dezember');
monthsFueller = new Array('JAN,31','FEB,28','MRZ,31','APR,30','MAI,31','JUN,30','JUL,31','AUG,31','SEP,30','OKT,31','NOV,30','DEZ,31')
timedate = new Date();


function 
Zeitmesser () {
    
hours timedate.getHours();
    
minutes timedate.getMinutes();
    
seconds timedate.getSeconds();
    
todaydate timedate.getDate();
    
day timedate.getDay();
    
dayname days[day];
    
month = (timedate.getMonth());
    
monthname months[month];
    
year timedate.getFullYear();

    if (
length(minutes) == 1) {
        
minutes "0"+minutes;
    }
    if (
length(seconds) == 1) {
        
seconds "0"+seconds;
    }
    
monat.text dayname+", "+todaydate+". "+monthname+" "+year+", "+hours+":"+minutes+":"+seconds;
    
delete timedate;
    
timedate = new Date();
}

newInt setInterval(Zeitmesser1000);

fuelleMonat(11);//Beispiel für Dezember

function fuelleMonat(erster) {
    
tempString monthsFueller[erster];
    
tempString tempString.split(",");
    
monatsName tempString[0];
    
tageAnzahl tempString[1];
    
einzelMonat.text monatsName;
    
breite einzelTag._width;
    for (
i=1;i<=tageAnzahl;i++){
        if (
length(i) == 1) {
            
"0"+i;
        }
        
neuerMC einzelTag.duplicateMovieClip("einzelTag_"+i2+i);
        
neuerMC._x =  i*breite+95;
        
neuerMC.tagText.text i;        
    }
    if(
timedate.getMonth() == erster){
        
heute timedate.getDate();
        if (
length(heute) == 1) {
            
heute "0"+heute;
        }
        
_root["einzelTag_"+heute].tagText.border true;
    }
    

Bin um über jede Hilfe dankbar. Ich weiß noch nicht mal wie ich da rangehen soll.

Viele Grüße
Manni

Geändert von mannimedia (09-12-2005 um 14:25 Uhr)
mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 13:38   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
var = new Date().getDay()
trace(d//<-- Wenn das "0" ist, ist's ein Sonntag 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-12-2005, 14:23   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
ja das ist mir schon klar. ich weiß nur nicht wie ich das in meinem beispiel anwenden soll. so krieg ich ja nur raus ob heute ein sonntag ist. ich will ja aber alle sonntage im jahr kennzeichnen
mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 14:49   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Dein Beispiel habe ich mir jetzt nicht komplett reingetan. Allerdings kannst du dir so:
PHP-Code:
function findSun(monatjahr) {
    var 
0;
    
arr = [];
    var 
temp = new Date(jahrmonat1).toString().split(" ")[1];
    while (++
x<32) {
        var 
= new Date(jahrmonatx);
        if (
d.toString().split(" ")[1] == temp) {
            if (
d.getDay() == 0) {
                
arr.push(d.getDate());
            }
        } else {
            break;
        }
    }
}
findSun(112005);
trace("Sonntage: "+arr); 
alle Sonntage für einen bestimmten Monat ausgeben lassen (wobei 11 Dezember und 0 Januar ist).
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-12-2005, 15:04   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Wow.

Super, das ist genau das was ich gebraucht habe. Vielen Dank. Bin leider noch nicht so fit in AS und immer wieder überrascht wie klar mir die Lösungen dann sind wenn ich sie lese, aber selbst drauf kommen ist das schwere

Und ich hab echt schon 2 Stunden rumüberlegt und probiert.

Bin noch am trainieren

THX und Grüße
mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 15:44   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Jetzt hab ich noch ein Problem. Die Sonntage sollen ne andere Schrift und ne andere Schriftgröße haben. Wenn ich schreibe:

PHP-Code:
        for(j=0;j<=arr.length;j++){
            if(
== arr[j]){
                
arr.splice(j,1);
                
neuerMC.tagText.textColor 0xCC0000;
            }            
        } 
dann schreibt er alle Sonntage in rot.

wenn ich aber schreibe:

PHP-Code:
        for(j=0;j<=arr.length;j++){
            if(
== arr[j]){
                
arr.splice(j,1);
                
textformat = new TextFormat("Franklin Gothic Heavy",14);
                
neuerMC.tagText.setTextFormat(textformat);
            }            
        } 
dann nimmt er die Formatierung nur für den ersten Sonntag im Monat.

Woran könnte das liegen?

LG
Manni
mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:02   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Gegenfrage: Woher kommt "neuerMC"???
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:04   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
hier das komplette skript. neuerMC wird dynamische erzeugt:

PHP-Code:
fuelleMonat(11);

function 
fuelleMonat(erster) {
    
findSun(erster2006);
    
tempString monthsFueller[erster];
    
tempString tempString.split(",");
    
monatsName tempString[0];
    
tageAnzahl tempString[1];
    
einzelMonat.text monatsName;
    
breite einzelTag._width;
    for (
i=1;i<=tageAnzahl;i++){
        if (
length(i) == 1) {
            
"0"+i;
        }
        
neuerMC einzelTag.duplicateMovieClip("einzelTag_"+i2+i);
        
neuerMC._x =  i*breite+95;
        
neuerMC.tagText.text i;
        for(
j=0;j<=arr.length;j++){
            if(
== arr[j]){
                
arr.splice(j,1);
                
textformat = new TextFormat("Franklin Gothic Heavy",14);
                
neuerMC.tagText.setTextFormat(textformat);
                
//neuerMC.tagText.textformat.size = "25";
            
}            
        }
    }
    if(
timedate.getMonth() == erster){
        
heute timedate.getDate();
        if (
length(heute) == 1) {
            
heute "0"+heute;
        }
        
_root["einzelTag_"+heute].tagText.border true;
    }    
}

function 
findSun(monatjahr) {
    var 
0;
    
arr = [];
    var 
temp = new Date(jahrmonat1).toString().split(" ")[1];
    while (++
x<32) {
        var 
= new Date(jahrmonatx);
        if (
d.toString().split(" ")[1] == temp) {
            if (
d.getDay() == 0) {
                
arr.push(d.getDate());
            }
        } else {
            break;
        }
    }

mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:12   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Auf jeden Fall mal nicht i zu "0"+i machen, bevor du das Array durchsuchst. Mir ist das jetzt auch leicht schleierhaft. Wenn's so
PHP-Code:
for (i=1i<=tageAnzahli++) {
    
//
    
txt length(i) == "0"+i;
    
//
    
neuerMC einzelTag.duplicateMovieClip("einzelTag_"+i2+i);
    
neuerMC._x i*breite+95;
    
neuerMC.tagText.text txt;
    for (
j=0j<arr.lengthj++) {
        if (
== arr[j]) {
            
arr.splice(j1);
            
textformat = new TextFormat("Franklin Gothic Heavy"14);
            
neuerMC.tagText.setTextFormat(textformat);
            
//neuerMC.tagText.textformat.size = "25"; 
            
break;
        }
    }

nicht klappt, dann häng mal die fla an, damit ich das mal vor Augen habe...

edit -> Nochwas:

1. Dein Kalender berücksichtigt keine Schaltjahre

2. Eigenlich brauchst du nur den 1. Sonntag im Monat (die anderen sind dann immer + 7 Tage)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (09-12-2005 um 16:16 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:21   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
hi,

klappt so leider auch nicht. das gleich phänomen wie vorher. er macht es nur beim ersten monat. was mich wundert ist das er halt z.B. neuerMC.tagText.textColor = 0xCC0000; macht. Ich hänge mal die .fla-Datei an. Und schonmal danke für die Hilfe
Angehängte Dateien
Dateityp: zip test.zip (3,4 KB, 2x aufgerufen)
mannimedia ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:29   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Oh... nimm mal das "textformat = new TextFormat("Franklin Gothic Heavy", 14);" aus der Schleife raus und setz das z.B. nach oben unter timedate = ...

Und außerdem musst du nicht über 1000 Zeichen in das Textfeld einbetten. Da reichen die Ziffern von 0-9
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-12-2005, 16:39   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Jo, das wars. werde ich mir merken, am besten Textformate global definieren und dann in den Schleifen zuweisen.

Vielen Dank für die Hilfe.

Greetz
mannimedia ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele