07. februar 2005 - 21:22Der er
10 kommentarer og 1 løsning
Kan nogle se fejlen?
Hey... Jeg prøver mig nu frem med setInterval, men kan ikke helt få en simpel if-funktion til at du.... Kan nogle monstro se fejlen - det er sikkert bare en lille, banal fejl, men jeg kan ikke helt selv finde den:
Nej... Det er det ikke.... Det har noget at gøre med if-funktionen. Jeg syntes jeg har prøvet alle muligheder, men jeg kan ikke finde løsningen på mit problem.
For det første er det noget ævl at initiere en variabel med værdien "0" og derefter prøve at inkrementere den. Det virker fordi flash er nådig, men man kan altså ikke inkrementere en streng.
I dit andet eksempel sammenligner du variablen "Enhed" med en tom streng (""). Er den det? Eller er den undefined? Eller er den "0"?
Hvis linien "if (Enhed == 1)" ikke "duer", så er det vel fordi "Enhed" ikke har værdien 1?
Og derudover kører din if ikke i din setInterval funktion. Og hvad vil du egentlig overhovedet? Vente et halvt sekund og så tegne en firkant? For er det bare det, så skriv dog blot:
function tegnSåDenFirkant(){ clearInterval(mit_interval); with(_root.createEmptyMovieClip("object",1)){ _x=100; _y=100; beginFill(0xFF0000,100); lineTo(100,0); lineTo(100,100); lineTo(0,200); } }; var mit_interval = setInterval(tegnSåDenFirkant, 500);
Enhed="0"; function obj(){ Enhed++; }; setInterval(obj,1000/2);
Og så ville den tælle: 0, 1, 2, 3.... Hvert halve sekund. Så var min plan, at lave if-funktioner sådanher:
if(Enhed == 1){ Lav en trekant }; if(Enhed == 2){ Lav en firkant }; if(Enhed == 3){ Lav en femkant }; ......
Men det fik jeg jo ligsom forklaret ret tydeligt, at det kunne jeg ikke. Men hvordan skulle jeg så kunne lave det med din funktion? Skriver jeg så:
function tegnSåDenTrekant(){ clearInterval(mit_interval); Lav en trekant } }; var mit_interval = setInterval(tegnSåDenTrekant, 1000/2); function tegnSåDenFirkant(){ clearInterval(mit_interval); Lav en firkant } }; var mit_interval = setInterval(tegnSåDenFirkant, 1000/2); function tegnSåDenFemkant(){ clearInterval(mit_interval); Lav en femkant } }; var mit_interval = setInterval(tegnSåDenFemkant, 1000/2);
Selvfølgelig kan du det. Men hvem skal hele tiden 50 gange tegne en ny figur? :/
For det første: hvorfor sætter du en variabel, der skal bruges som en tæller, til "0"? Hvorfor skal det dog være en streng? Det er jo et tal?
For det andet: Du skal _stadig_ proppe dine if'er ind i den funktion, der kører hvert interval - du kan ikke lægge dem udenfor funktionen.
Hvis jeg virkelig skal pinde det helt ud for dig, så er det altså bare:
tæller = 0; function tegnSåNoget(){ clearInterval(mit_interval); switch(++tæller) { case 1: with(_root.createEmptyMovieClip("object",1)){ _x=100; _y=100; beginFill(0xFF0000,100); lineTo(100,0); lineTo(100,100); lineTo(0,200); } break; case 2: // noget med en femkant... break; // øvrige cases her.. } }; var mit_interval = setInterval(tegnSåNoget, 500);
Nu har jeg godt nok brugt en switch inde i funktionen - kunne lige så nemt have været lavet med en if - switch ser bare lidt mere overskueligt ud..
Det er altså ikke rocket science - men selvfølgelig skal du have det script, som skal køre hvert halve sekund, inden i den funktion, der kører hvert halve sekund. :)
Jeg fandt en anden måde at gøre det på... Ellers tak for hjælpen!
-- Lukket --
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.