Avatar billede sysop Juniormester
11. september 2002 - 17:08 Der er 28 kommentarer og
1 løsning

Hjææælp til flash 5 script

Jeg har brug for et script/hjælp til følgende:

Jeg har 2 billeder. De 2 billeder er egentlig bare frame 1 & 2 i et MC. Dag 1 skal billed 1 vises, dag 2 skal billed 2 vises dag 3 skal billed 1 vises osv osv.

Dette skal skifte på alle arbejdsdage og ikke Helligdage! Jeg behøver kun 1 år ad gangen.

Bruger flash 5
Avatar billede hoejrup Nybegynder
11. september 2002 - 20:11 #1
Hvis du har brug for det, så skulle du gå ud og købe din ekspertise.
Jeg har selv udviklet et tilsvarende script, og det fylder faktisk
over hundrede programlinier. Det er nemlig fuldstændig ligegyldigt om det kun er et år adgangen.

/per
Avatar billede sysop Juniormester
11. september 2002 - 20:14 #2
Per jeg har lavet programmet i visual basic men for at modernisere det lidt havde jeg tænkt mig det skulle på nettet. Er det virkelig så stor en ting, at få den til at flytte en frame frem og tilbage en dag adgangen?
Avatar billede hoejrup Nybegynder
11. september 2002 - 22:43 #3
Hvad har Visual Basic at gøre med ActionScript ?

Du kan bare lave et layer med en stop(); i hver eneste frame. Og det
behøver du ikke at give 200 point for. Derefter kan du bare vælge framen med _root.gotoAndPlay(framenummer);

/per
Avatar billede baitianlong Nybegynder
12. september 2002 - 01:54 #4
Skriv dette på movieclippet:

onClipEvent(enterFrame) {
  tid = new Date();
  dato = tid.getDate();
  if(dato % 2 != 0) {
    gotoAndStop(2);
  } else {
    gotoAndStop(1);
  }
}

Så ser den om 2 går op i datoen, hvis det gør - stopper den i frame 2, ellers stopper den i frame 1...
Avatar billede sysop Juniormester
12. september 2002 - 19:04 #5
Per: Visual basic har ikke en skid med det at gøre, men jeg fortalte dig bare, at jeg havde lavet et turprogram for en vognmand i VB, men ønskede at lave en internet version istedet.

Legende: Det fungere bare som det skal, men kan man lave undtagelser, eks. hvis man indprogrammere eks. 10 datoer som den skal "springe over"??
Avatar billede baitianlong Nybegynder
13. september 2002 - 12:32 #6
Ja. F.eks på denne måde...

onClipEvent(load) {
  sjov = true;
  tid = new Date();
  dato = tid.getDate();
  month = tid.getMonth()+1;
  if(dato == 14 && month == 3) { // 14. marts
      sjov = false;
  } else if(dato == 25 && month == 7) { // 25. juli
      sjov = false;
  } else if(dato == 24 && month == 12) { // Juleaften
      sjov = false;
  }
onClipEvent(enterFrame) {
  if(sjov) {
      if(dato % 2 != 0) {
        gotoAndStop(2);
      } else {
        gotoAndStop(1);
      }
  } else {
      gotoAndStop(1); //Det billede, der skal vises de datoer
  }
}

Det skulle løse opgaven, ellers så sig til (o;
Avatar billede baitianlong Nybegynder
13. september 2002 - 12:34 #7
Der mangler lige en klamme...

onClipEvent(load) {
  sjov = true;
  tid = new Date();
  dato = tid.getDate();
  month = tid.getMonth()+1;
  if(dato == 14 && month == 3) { // 14. marts
      sjov = false;
  } else if(dato == 25 && month == 7) { // 25. juli
      sjov = false;
  } else if(dato == 24 && month == 12) { // Juleaften
      sjov = false;
  }
} //her

onClipEvent(enterFrame) {
  if(sjov) {
      if(dato % 2 != 0) {
        gotoAndStop(2);
      } else {
        gotoAndStop(1);
      }
  } else {
      gotoAndStop(1); //Det billede, der skal vises de datoer
  }
}
Avatar billede sysop Juniormester
13. september 2002 - 16:04 #8
Det var lige nøjagtige dette jeg skulle bruge!!! 1000000 Tak for hjælen, det fungere bare 100!
Avatar billede baitianlong Nybegynder
13. september 2002 - 16:07 #9
Det glæder mig, og tak for pointsne ((((o;
Avatar billede sysop Juniormester
13. september 2002 - 16:20 #10
Legende: Jeg var nok lidt for hurtig dér. Hvad med de måneder der er 31 dage i. Der vil den både den 31 & 1 vise samme billede!?!?!?!? HVad gør jeg der?
Avatar billede baitianlong Nybegynder
13. september 2002 - 16:27 #11
Jeg har selv tænkt på det i dag - og her tror jeg løsningen er

onClipEvent(load) {
  sjov = true;
  tid = new Date();
  dato = tid.getDate();
  month = tid.getMonth()+1;
  if(dato == 14 && month == 3) { // 14. marts
      sjov = false;
  } else if(dato == 25 && month == 7) { // 25. juli
      sjov = false;
  } else if(dato == 24 && month == 12) { // Juleaften
      sjov = false;
  }
}
onClipEvent(enterFrame) {
  if(sjov) {
    if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { 
      if(dato % 2 != 0) {
        gotoAndStop(2);
      } else {
        gotoAndStop(1);
      }
    } else {
      if(dato % 2 != 0) {
        gotoAndStop(1);
      } else {
        gotoAndStop(2);
      }
    }   
  } else {
      gotoAndStop(1); //Det billede, der skal vises de datoer
  }
}


Kan nok kodes lidt smartere, men prøv den lige af - jeg tror den er der nu (o;
Avatar billede baitianlong Nybegynder
13. september 2002 - 16:30 #12
Nu bytter den om, alt efter hvilken måned (og hvor mange dage) man er i. Det skulle virke fint. Eneste problem nu er skudår.... Den skal jeg nok fikse senere, eller i morgen (o;
Avatar billede sysop Juniormester
13. september 2002 - 16:39 #13
Mandag d. 2 december laver den lort i den!
Avatar billede baitianlong Nybegynder
13. september 2002 - 16:47 #14
Det gør den også fra d. 31. december til den 1. januar - Jeg skal til og i byen i aften, så jeg kan desværre ikke fortsætte før i morgen... Skriv hvis du ikke kan vente... Så kan du få pointsne tilbage
Avatar billede sysop Juniormester
13. september 2002 - 16:47 #15
Jeg vil ikke have point retur. Hvis du en dag i den kommende uge har tid vil jeg være meget taknemmelig!
Avatar billede baitianlong Nybegynder
13. september 2002 - 16:49 #16
Jeg lover at kigge på det i morgen - med venlig hilsen legende.dk
Avatar billede baitianlong Nybegynder
14. september 2002 - 17:08 #17
Jeg har rodet med det de sidste 3 timer, og nu er jeg vist klar...
Det her er det sejeste script, jeg nogen sinde har lavet (((o;

onClipEvent(load) {
    function dagnr() {
        tid = new Date();
        year = tid.getFullYear();
        month = tid.getMonth()+1;
        dage = tid.getDate();
        m1 = 31;
        m2 = 28;
        if(year == 2004 || year == 2008 || year == 2012 || year == 2016) {
            m2 = 29;
        }
        m3 = 31;
        m4 = 30;
        m5 = 31;
        m6 = 30;
        m7 = 31;
        m8 = 31;
        m9 = 30;
        m10 = 31;
        m11 = 30;
        m12 = 31;
        antaldage = dage;
        for(x = 0; x < month; x++) {
            antaldage += this["m" + x];
        }
        minusdage = new Array();
        minusdage[1] = "0105"; //1. maj
        minusdage[2] = "1208"; //12. oktober
        minusdage[3] = "2412"; //juleaften
        if(dage < 10) { dage = ["0" + dage]; }
        if(month < 10) { month = ["0" + month]; }
        nu = dage.toString() + month.toString();
        datoer = minusdage.toString();
        if(datoer.indexOf(nu) > 0) {
            this.gotoAndStop(1);
        } else {
            year = int(year);
            this.gotoAndStop(antaldage % 2 != 0 ? 1 : 2);
        }
    }
}
onClipEvent(enterFrame) {
    dagnr();
}


Nu virker det perfekt

Du kan selv indsætte flere "minusdage" ved at indsætte linier:

minusdage[4] = "0811";
minusdage[5] = "0306";

Med venlig hilsen
legende.dk
Avatar billede sysop Juniormester
14. september 2002 - 18:08 #18
Du er sku godt nok en kammerat Legende. Jeg har siddet og testet det lidt, men syntes ikke jeg kan få minus dagene til at fundere! Hvis jeg tager 30 april vil den stadig skifte 1 maj.!!!??? Har jeg ret?
Avatar billede sysop Juniormester
14. september 2002 - 18:30 #19
Ville det være nemmere hvis man sagde at den skulle gå til billed 3 på dage den skulle "springe over" (helligdage)?
Avatar billede baitianlong Nybegynder
14. september 2002 - 19:40 #20
Jeg forstår ikke helt hvad du mener, der er galt... Hvis du sætter d. 24.12 til en minusdag - skulle både d. 23+24+25 give billede 1 - men ingen er jo ufejlbarlig - måske er der stadig noget galt

Lad mig høre om der stadig er bugs i lortet...
Avatar billede sysop Juniormester
14. september 2002 - 19:43 #21
Ahh. shit. Måske har jeg forklaret mig lidt forkert. Lad os tage et eks. 30 maj skal billed 1 vises. 1 maj skal billed 3(Eller måske bare stadig billed 1 vises). 2 maj skal billed 2 vises! Håber du forstår mig. Hvis du vil have flere points så sig til, for du har sku lagt meget arbejde i dét!
Avatar billede baitianlong Nybegynder
14. september 2002 - 21:41 #22
Hi hi - jeg har forstået det på denne måde...

Den skal hver dag skifte fra 1 til 2 til 1 til 2, undtaget de dage du har angivet i koden. De dage SKAL billede 1 vises - sådan her:

dato.... 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
mærkedag                            8
billede  1 - 2 - 1 - 2 - 1 - 2 - 1 - 1 - 1 - 2

Er det ikke meningen ??
Avatar billede baitianlong Nybegynder
14. september 2002 - 21:42 #23
Det står lidt skævt... Men jeg håber vi forstår hinanden *LOOOOL*
Avatar billede baitianlong Nybegynder
14. september 2002 - 22:44 #24
Jeg kan ikke forstå, hvad, der skulle være galt. Jeg har lige afprøvet den her igen, og den virker upåklageligt...
Hvis man som jeg har gjort, sætter f.eks 12. oktober til en minusdag, vises billede 1 d. 11. - 12. - 13. og så 2-1-2-1 igen fra den 14. og frem. Hent min udgave her, og prøv den af (O;

http://www.legendenet.dk/misc/1-2.html

http://www.legendenet.dk/misc/1-2.fla
Avatar billede sysop Juniormester
15. september 2002 - 08:23 #25
Forestil dig et vognmandsfirma hvor der køres i jylland hver dag henholdsvis, dag 1 - nordjylland,  dag 2 - sdr. jylland. Hvis der den 30 april køres nord, 1 maj køres ikke, så skal der den 2 maj køres syd. Ved dit eks. vil der igen d 2 april blive kørt nord.

dato.... 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
mærkedag                            8
billede  1 - 2 - 1 - 2 - 1 - 2 - 1 - 1 - 2 - 1

Håber du forstå mig .
Avatar billede baitianlong Nybegynder
15. september 2002 - 13:56 #26
Jeg tror jeg har forstået det nu - hvilket spild af kode og tid, jeg har lavet så !!  Jeg kigger på den om et par timer.

Med venlig hilsen
legende.dk
Avatar billede baitianlong Nybegynder
15. september 2002 - 16:00 #27
Jeg giver aldrig op (((O;  Her er det nye script:

onClipEvent(load) {
    function dagnr(dato) {
        dato2 = dato.split(".", 2);
        dag = int(dato2[0]);
        month = int(dato2[1]);
        m1 = 31; m2 = 28; m3 = 31; m4 = 30; m5 = 31; m6 = 30;
        m7 = 31; m8 = 31; m9 = 30; m10 = 31; m11 = 30;
        antaldage = dag;
        if(month > 1) {
            for(x = 1; x < month; x++) {
                antaldage += this["m" + x];
            }
        }
        return antaldage;
    }
}
onClipEvent(enterFrame) {
    minusdag1 = "03.04"; //3. april
    minusdag2 = "05.05"; //5. maj
    minusdag3 = "14.07"; //14. juli
    minusdag4 = "25.09"; //25. september
    minusdag5 = "23.11"; //23. november
    tid = new Date();
    nu_d = tid.getDate();
    nu_m = tid.getMonth()+1;
    nu = nu_d + "." + nu_m;
    nu = nu.toString();
    nu_antal = dagnr(nu);
    md1_antal = dagnr(minusdag1);
    md2_antal = dagnr(minusdag2);
    md3_antal = dagnr(minusdag3);
    md4_antal = dagnr(minusdag4);
    md5_antal = dagnr(minusdag5);

    if(nu_antal >= md1_antal) {
        offset = 1;
    }
    if(nu_antal >= md2_antal) {
        offset = 0;
    }
    if(nu_antal >= md3_antal) {
        offset = 1;
    }
    if(nu_antal >= md4_antal) {
        offset = 0;
    }
    if(nu_antal >= md5_antal) {
        offset = 1;
    }
    if(!offset) {
        this.gotoAndStop(nu_antal % 2 != 0 ? 1 : 2);
    } else {
        this.gotoAndStop(nu_antal % 2 != 0 ? 2 : 1);
    }
}


Bare husk en vigtig ting, når du indsætter minusdagene i dette script. De SKAL komme i rigtig rækkefølge (23. januar, 11. februar, osv.)

Nu tror jeg den er der... Ellers må du lige sige til (IGEN)

Mvh
legende.dk
Avatar billede sysop Juniormester
15. september 2002 - 19:49 #28
NU virker det 110% som jeg gerne ville have det!! Må jeg have lov at sige 1000 tak for din kæmpe indtats. Jeg havde på ingen måde troet det var så omstændigt. Blot ét spørgsmål: Hvis jeg vil have flere minus dage skal der så bare tilføjes følgende:
minusdag6 = "25.12";
&
if(nu_antal >= md6_antal) {
        offset = 1;

??
Hvad gør offset?
Check lige din mail også!
Avatar billede baitianlong Nybegynder
15. september 2002 - 20:10 #29
Jeg siger tak for de venlige ord, her og via email... Men jeg har glemt lidt, kan jeg se. Skudår + årsskifte... Jeg emailer dig den perfekte kode senere, eller i morgen...

Forklaring på "offset"...
Når datoen rammer en "munisdag" skal den bytte om på billede 1 og 2 (således kommer samme billede to gange i træk) - min Offset variabel bestemmer om den skal vise billede 1 eller 2 når dagens nummer på året går op i to !!! Meget syret.

Derfor skal du sætte offset til 0 skiftevis med 1. Nr 6 skal derfor:

1) minusdag6 = "17.12"; //17. december

2) md6_antal = dagnr(minusdag6);

3) if(nu_antal >= md6_antal) {
        offset = 0; //fordi nr. 5 sætter den til 1, de skal skifte (o;
  }

Jeg retter lige det med årsskiftet og skudåret
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