26. september 2004 - 22:48Der 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?
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
**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());
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.
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 :)
Synes godt om
Ny brugerNybegynder
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.