Først skal vi lige lave en getWeek metode (hvilket kræver lidt ekstra af flash):
Date.prototype.getWeek = function() { var d = this.getDayOfYear() - this.getDay(); return Math.round(d/7)+1; } 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];
og så et array af kodeord:
passwords = new Array(); passwords[1] = "uge1ersejest"; //kodeord for uge 1; passwords[17] = "ligenuerdetuge17"; // kodeord for uge 17 - lige nu
og på din knap:
on (press) { if (myInput == passwords[new Date().getWeek()]) { gotoAndStop("right"); } else { gotoAndStop("wrong"); } }
det vil sige at på en keyframe i første række ligger: Date.prototype.getWeek = function() { var d = this.getDayOfYear() - this.getDay(); return Math.round(d/7)+1; } 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];
- hvor ligger: passwords = new Array(); passwords[1] = "uge1ersejest"; //kodeord for uge 1; passwords[17] = "ligenuerdetuge17"; // kodeord for uge 17 - lige nu
Bare til information: vær opmærksom på at man så godt som altid er i stand til at 1) hente actionsctionscript ud fra .swf filer. Og på den måde se passwordet hvis det er i plaintext. 2) finde ud af hvilke side er en .swf laver forespørgsler til. Så hvis man indtaster passwordet for at få adgang til en fil der ligger 'ubeskyttet', vil man kunne hente det der skal hentes selv om man ikke indtaster passwordet.
Dine passwords ligger du også i starten af din flashfilm. Og du tester det ved at skrive det hele i første keyframe, og ændre din knap kode som foreskrevet. Så skulle det meget gerne være sådan, at den rigtige kode er "ligenuerdetuge17".
Scriptets allerstørste fejl (og grunden til, at du i praksis ikke kan bruge det, hvis det er til noget seriøst) er, at den beregner ugenummeret efter brugerens computer, så hvis jeg stiller mit ur om til en anden dato, så kan jeg lige pludselig bruge et andet kodeord. Altså hvis jeg kender kodeordet for uge 17 og ikke for uge 18, så kan jeg i uge 18 bare stille uret tilbage og så er det uge 17's kodeord, der er det rigtige.
En mulig løsning på dette er, at man henter tiden ind i flash fra serveren. Men det er et helt andet og lidt besværligere spørgsmål.
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.