Avatar billede ellert Nybegynder
26. september 2004 - 22:48 Der er 10 kommentarer og
1 løsning

Flash og PHP - uge nr?

Hej!

Jeg vil lave mig et lille script i flash, som viser dato (i formatet SEPTEMBER 26, 2004) samt denne nuværende uges nr (WEEK 37) .. Men jeg har ikke kunne finde ud af det - og jeg har ikke kunnet finde nogen måde man i flash kunne finde ugenummeret på, og så var det jeg tænkte, at man i hvert fald kan i PHP - og de to kan jo arbejde sammen!
Men jeg er så rusten til Flash, så mit spørgsmål er, om nogen kan udtænke dette til mig - eller en guide dertil?

På forhånd tak!
Avatar billede ellert Nybegynder
26. september 2004 - 23:04 #1
Det eneste jeg mangler nu, er det med ugenummeret
Avatar billede barklund Nybegynder
26. september 2004 - 23:24 #2
Jeg har nogle Date-prototyper her, der kan hjælpe dig:

http://actionscript.dk/eksperten/date/
Avatar billede ellert Nybegynder
26. september 2004 - 23:44 #3
Lækkert! Hvordan bruger jeg det?
_root.week = Date.prototype.getWeek(); ???
Avatar billede ellert Nybegynder
26. september 2004 - 23:48 #4
Bruger jeg det, skriver den bare "NAN" som output?
Avatar billede barklund Nybegynder
27. september 2004 - 13:55 #5
Først lige en rettelse, så den håndterer årsskifter korrekt:

Date.prototype.getWeek = function() {
    var d = this.getDayOfYear() - (7 - ((7 - this.getDay()) % 7)) + 3;
    if (d >= 0) {
        return Math.floor(d / 7) + 1;
    } else {
        return new Date(this.getFullYear() - 1, 11, 31).getWeek();
    }
};
Date.prototype.getDayOfYear = function() {
    var m = this.getMonth();
    var d = this.getDate();
    if (this.isLeapYear && this.month > 2) {
        d++;
    }
    var i = m;
    while (i--) {
        d += this.$_months[i];
    }
    return d;
};
Date.prototype.isLeapYear = function() {
    var y = this.getYear();
    return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
};
Date.prototype.$_months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
ASSetPropFlags(Date.prototype, null, 1, 0);

Derefter kan du med ovenstående kode placeret i første eksempel første frame af din film, hvorsomhelst lave et date-objekt, som du vil have ugenummeret for:

trace(new Date(2004, 0, 1).getWeek()); // 1. januar i år er uge 1
trace(new Date(2003, 0, 1).getWeek()); // 1. januar sidste år er uge 1
trace(new Date(2005, 0, 1).getWeek()); // men 1. januar næste år er uge 53

--
Morten Barklund
Avatar billede barklund Nybegynder
27. september 2004 - 14:00 #6
(og til alle andre who cares så er den reviderede version også uploaded til ovenstående link)
Avatar billede ellert Nybegynder
27. september 2004 - 17:01 #7
**Error** Scene=Scene 1, layer=Layer 3, frame=1:Line 6: There is no method with the name 'getWeek'.
            return new Date(this.getFullYear() - 1, 11, 31).getWeek();

**Error** Scene=Scene 1, layer=actions, frame=1:Line 14: There is no method with the name 'getWeek'.
    trace(new Date(2005, 0, 1).getWeek());
Avatar billede ellert Nybegynder
27. september 2004 - 17:03 #8
Jeg er som sagt rimelig dårlig til flash..
Hvis jeg skal ha det til at står i textboxen _root.week, havd gør jeg så?
Avatar billede barklund Nybegynder
27. september 2004 - 17:06 #9
Lad være med at eksportere til ActionScript2. Åbn dine export settings (Ctrl+Shift+F12), vælg fanebladet Flash og vælg ActionScript1 istedet for 2. Prøv igen.
Avatar billede ellert Nybegynder
27. september 2004 - 17:10 #10
Perfekt!
Er der ændret meget i strukturen fra AS 1 til 2 ??
Avatar billede barklund Nybegynder
27. september 2004 - 17:14 #11
Ja, blandt andet med hensyn til klasse strukturen - man kan ikke bære lave nye metoder på eksisterende klasser, man er nødt til at gøre det ved at extende klassen og lave en ExtendedDate klasse eller noget i den stil og ikke bare bruge Date. Men det er der ingen grund til her :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester