Avatar billede ravnkilde Nybegynder
23. juni 2003 - 15:21 Der er 33 kommentarer og
1 løsning

Action script / gå til scene 2 efter 100 omgange

Jeg har en flash movie, hvori der er en tæller, der tæller hver gang movien passerer 50. frame. Nu vil jeg gerne have, at når movien har kørt f.eks. 100 gange, skal den gå til scene 2.

Det må være noget if (+counter+) = 100 then.....

Lidt kvalificeret hjælp behøves!


Her er min tæller-kode:
counter++
counter.text = "+counter+";
Avatar billede jakwag Nybegynder
23. juni 2003 - 15:29 #1
if(counter = 100){
  gotoAndPlay("scene 2",1)
}
Avatar billede jakwag Nybegynder
23. juni 2003 - 15:29 #2
Så går den til frame 1 i scene 2 og begynder at spille.

: ) Jakob
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 15:37 #3
Hej jakwag!

Med denne kode

counter++
counter.text = "+counter+";

if(counter = 100){
  gotoAndPlay("scene 2",1)
}

Skriver tælleren bare "100" en gang og ikke andet!
Avatar billede jakwag Nybegynder
23. juni 2003 - 15:39 #4
Hovsa!

Så lykkedes det mig endnu en gang at lave den klasiske.

Det skal være == istedet for =

if(counter == 100){
  gotoAndPlay("scene 2",1)
}
Avatar billede hoejrup Nybegynder
23. juni 2003 - 15:39 #5
Han mente sikkert:

if(counter == 100){
  gotoAndPlay("scene 2",1)
}

/per
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 15:47 #6
Hmm...

Jeg får min scene 2 med hver gang, og ikke efter 100 omgange af scene 1. Scene 1 består af en movie på 50 frames. Når den har kort 100 gange, skal movien hoppe til scene 2.
Avatar billede jakwag Nybegynder
23. juni 2003 - 15:50 #7
nå ja, vi har jo ikke bedt den om at loope endnu:

if(counter == 100){
  gotoAndPlay("scene 2",1)
}else{
  gotoAndPlay("scene 1",1)
}

Prøv det.
Avatar billede hoejrup Nybegynder
23. juni 2003 - 15:56 #8
Frame 50:

if(counter == 100){
  gotoAndPlay("scene 2",1)
}else{
  counter++
  counter.text = "+counter+";
  gotoAndPlay(1)
}


/per
Avatar billede hoejrup Nybegynder
23. juni 2003 - 15:57 #9
if (counter == 100) {
    gotoAndPlay ("scene 2", 1);
} else {
    counter++;
    counter.text = "+counter+";
    gotoAndPlay (1);
}


/per
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 15:58 #10
Hmm hmm....

Den står bare og looper derud! Efter 100 omgange sker der ikke andet, end den fortsætter med at tælle.
Avatar billede jakwag Nybegynder
23. juni 2003 - 16:00 #11
hvor ligger scriptet? inden i et moviclip eller på maintimeline?
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 16:02 #12
action scriptet ligger inde i et movieclip på frame nr. 50. - scene 1.
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 16:06 #13
...som et dynamisk tekst felt.
Avatar billede jakwag Nybegynder
23. juni 2003 - 16:13 #14
hhmm.. Så vidt jeg ved kan man ikke skifte til en anden scene inde fra et moviclip, der er i det hele taget mange ting som er lidt besværlige ved at arbejde med scener og action script. Så for fremtiden undgå scener.

Men lad os løse problemet alligevel.

Scriptet ligger i frame 50 i et movieclip. Hvor ligger movieclippet? Og hvad har du ellers på maintimeline? Hvor mange frames er der?
Avatar billede jakwag Nybegynder
23. juni 2003 - 16:29 #15
Jeg bliver nød til at gå nu, men det her kan virke hvis dit movieclip ligger på maintimeline:

I frame 50 i moviclippet lader du
counter++
counter.text = "+counter+";
gotoAndPlay("scene 1",1)

Stå, og fjerner:
if(counter == 100){
  gotoAndPlay("scene 2",1)
}else{
}

Dit movieclip skal have et instance navn, det stiller du i propperties.
f.eks.: anim_mc
I frame 1 i maintimeline skriver du:

this.onEnterFrame = function(){
  if(anim_mc.counter==100){
    gotoAndPlay("scene 2",1);
    delete this.onEnterFrame;
  }
};
Avatar billede barklund Nybegynder
23. juni 2003 - 16:29 #16
Du kan da ikke både kalde din variabel og dit tekstfelt for counter. Det er noget rod. Kald tekstfeltet for counter_tf eller tilsvarende istedet... (slutter det på _tf, så får du også codehints i flash mx)
Avatar billede jakwag Nybegynder
23. juni 2003 - 16:33 #17
Skal det ikke være _txt ikke _tf?
Avatar billede hoejrup Nybegynder
23. juni 2003 - 16:42 #18
if (counter == 100) {
    _root.gotoAndPlay ("labelNavn");
} else {
    counter++;
    counter.text = "+counter+";
    gotoAndPlay (1);
}

Derefter lægger du en label i scene to med labelNavn i en frame.

/per
Avatar billede barklund Nybegynder
23. juni 2003 - 16:42 #19
Det skal det da også... jeg blandede vist nogle ting sammen...
Avatar billede ravnkilde Nybegynder
23. juni 2003 - 20:24 #20
Jeg afprøver jeres forslag i morgen formiddag.
Avatar billede jakwag Nybegynder
24. juni 2003 - 08:22 #21
hoejrup har ret, det er sådan det skal gøres.
Avatar billede ravnkilde Nybegynder
24. juni 2003 - 09:08 #22
Det virker mere efter hensigten, men (!) inden den skifter til scene 2, når scene 1 movien at køre næsten 101 omgange. Dvs. den tæller op til 100 og kører de første 49 af de 50 frames på omgang 101, der er i scene 1 movien. På den 50. frames skifter den til scene 2.

Kan det laves således at den skifter med det samme efter 100 omgange?
Avatar billede barklund Nybegynder
24. juni 2003 - 09:45 #23
if (counter == 99) {
    _root.gotoAndPlay ("labelNavn");
} else {
    counter++;
    counter.text = "+counter+";
    gotoAndPlay (1);
}
Avatar billede ravnkilde Nybegynder
24. juni 2003 - 10:28 #24
barklund: Det giver det samme. Man ser stadig movien på vej mod omgang nr. 100, før den skifter. Den tæller op til 99 og kører så omgang nr. 100, og lige før frame 50, går den til scene 2. Men det kan nok ikke være anderledes.
Avatar billede barklund Nybegynder
24. juni 2003 - 10:50 #25
Jeg forstår ikke? Alt kan laves, du skal bare forklare hvad... Nu kører den 100 omgange og skifter til scene 2 når den når frame50 på omgang nummer 100. Er det ikke det, som den skal?
Avatar billede ravnkilde Nybegynder
24. juni 2003 - 15:29 #26
barklund: I mit tilfælde er det en bold, der ruller fra venstre mod højre, og når den har gjort det 100 gange, skal den skifte til scene 2. Som det er nu, ser man tælleren nå op på 100 og så ser man bolden rulle (på omgang 101) fra venstre mod højre og når den når til frame 50 skifter den til scene 2. Den skifter i princippet når tælleren når til 101.

Jeg har tilladt mig at maile dig min flash-movie (test). Så kan du bedre se hvad, jeg mener. Håber det er ok.
Avatar billede barklund Nybegynder
24. juni 2003 - 18:56 #27
Skriv gotoAndPlay(1) i frame50, og flyt det andet script til frame1...

Årsagen til, at dit tekstfelt virker er, at det kun har en variabel-navn, som er counter... så linien med counter.text er helt overflødig!
Avatar billede ravnkilde Nybegynder
25. juni 2003 - 11:39 #28
barklund: jeg har gjort flg.:

Frame 1, flg. kode:
if (counter == 100) {
    _root.gotoAndPlay ("scene_2");
} else {
    counter++;
    counter.text = "+counter+";
    gotoAndPlay (1);
}

Frame 50, flg. kode:
gotoAndPlay(1)

Med ovenstående kører den fortsat næsten en hel ekstra omgang, inden den skifter til scene 2. Min kode forkert?
Avatar billede barklund Nybegynder
25. juni 2003 - 11:54 #29
Skal den lige efter den har kørt omgang 99 hoppe til frame 2 eller lige efter omgang 100? Jeg fatter stadig ikke, hvad du vil.
Avatar billede ravnkilde Nybegynder
25. juni 2003 - 12:22 #30
Tælleren skal kun tælle op til 100 og straks derefter springe til scene 2. Som det er nu, ser man tælleren nå op på 100 og så ser man bolden rulle (på omgang 101) fra venstre mod højre og når den når til frame 50 skifter den til scene 2. Den skifter i princippet når tælleren når til 101.
Avatar billede barklund Nybegynder
25. juni 2003 - 12:42 #31
Du kan jo ikke nå at se den skifte til 100, når du hopper samtidig med!
Avatar billede barklund Nybegynder
25. juni 2003 - 12:43 #32
I flash er "straks derefter" enten samme frame eller med en frames mellemrum - hvad mener du?
Avatar billede ravnkilde Nybegynder
25. juni 2003 - 12:49 #33
barklund: du kan selv se det på den flash, jeg sendte til dig i går. Du når at se den tælle op til 100 og næsten køre "en omgang" mere (101), før den skifter.

Hvis ikke det kan laves anderledes, må det være sådan!
Avatar billede barklund Nybegynder
25. juni 2003 - 13:36 #34
Hvis du istedet for "100" i koden skriver "99", så kører den selvfølgelig en gang mindre... Men det er blevet foreslået tidligere og det var du heller ikke tilfreds med. Hvad vil du så have?
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