31. maj 2002 - 10:47Der er
13 kommentarer og 1 løsning
"while" vil ikke som jeg vil
Jeg har her et lille script, som kopiere et movieclip ind på scenen et antal gange (bestemt af smantal) hvorefter movieclipét placeres på scenen, så de ikke ligger ovenpå hinanden, og til sidst sættes et tekstfelt i movieclip'et så det indeholder en variabel tekst. Kort sagt en "Menu-generator"
MEN afviklingen stopper ved linien "setProperty ("/knap" + num, _y, 50 * num);" og hvis jeg fjerner denne linie virker scriptet perfekt.
Kan nogen forklare hvorfor While loopet stopper, når jeg indsætter to gange SetPro.....????
--> num = 1; while (num <= smantal) { // Her kopieres det movie clip hvori den originale knap findes duplicateMovieClip ("/knapmenu", "knap" + num, num); // Her flyttes knappens X og Y position så alle knapperne ikke står lige over hinanden setProperty ("/knap" + num, _x, (198 * num) - 150); setProperty ("/knap" + num, _y, 50 * num); // Her skrives variabel teksten ind på knappen set ("/knap" + num + ":knap_tekst", eval("knap_tekst" + num)); num = num + 1; } stop (); <--
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
num = 1; while (num <= smantal) { // Her kopieres det movie clip hvori den originale knap findes duplicateMovieClip ("/knapmenu", "knap" + num, num); // Her flyttes knappens X og Y position så alle knapperne ikke står lige over hinanden setProperty ("knap" + num, _x, (198 * num) - 150); setProperty ("knap" + num, _y, 50 * num); // Her skrives variabel teksten ind på knappen set ("/knap" + num + ":knap_tekst", eval("knap_tekst" + num)); num = num + 1; }
num = 1; while (num <= smantal) { // Her kopieres det movie clip hvori den originale knap findes _root.knapmenu.duplicateMovieClip ("knap" + num, num); // Her flyttes knappens X og Y position så alle knapperne ikke står lige over hinanden _root["knap" + num]._x = (198 * num) - 150; _root["knap" + num]._y = 50 * num; // Her skrives variabel teksten ind på knappen set ("knap" + num + ":knap_tekst", eval("knap_tekst" + num)); num = num + 1; }
num = 1; while (num <= smantal) { // Her kopieres det movie clip hvori den originale knap findes _root.knapmenu.duplicateMovieClip ("knap" + num, num); // Her flyttes knappens X og Y position så alle knapperne ikke står lige over hinanden _root["knap" + num]._x = (198 * num) - 150; _root["knap" + num]._y = 50 * num; // Her skrives variabel teksten ind på knappen _root["knap" + num].knap_tekst = _root.knap_tekst[num]; num = num + 1; }
Du kan lave teksten som en array i hoved filmen:
knap_tekst = new Array(); knap_tekst[1] = "Test1"; knap_tekst[2] = "Test2";
Hej per, tak for dine kommentarer, men nu har jeg ændret koden til denne:
num = 1; while (num <= smantal) { trace ("num" + num + "sm" + smantal); duplicateMovieClip ("/knapmenu", "knap"+num, num); _root["knap"+num].knap_tekst = _root["knap_tekst"+num]; _root["knap"+num]._y = 50*num; _root["knap"+num]._x = 100; num = num+1; } trace ("num" + num + "sm" + smantal); stop ();
** og jeg har stadigt samme underlige fejl, hvis jeg sletter den linie, hvori _x sættes virker loopet korrekt, og laver det antal knapper jeg skal have iht. variablerne, (som kommer fra en .txt fil) men med denne kodelinie kommer der kun en knap, som er med den rigtige tekst og er placeret korekt. Men kun en knap, selvom der skulle komme 4 - Jeg har indsat to trace, og i den sidste står der num2sm4 - altså stopper FLASH loopet selvom num kun er 2 og smantal er 4 -
det fatter jeg ikke hvorfor den gør.
PS: hvis du kommer med en ide, så lav den lige som et svar, så jeg kan belønne dig for dine ellers gode svar, selvom de ikkehar løst mit problem.
Lav det som en for-løkke - det er jo alligevel oplagt... måske løser det oven i fejlen:
for (num = 1; num <= smantal; num++) { trace ("looping with num = " + num + ", sm = " + smantal); _root.knapmenu.duplicateMovieClip("knap"+num, num); _root["knap"+num].knap_tekst = _root["knap_tekst"+num]; _root["knap"+num]._y = 50*num; _root["knap"+num]._x = 100; } stop ();
Men hvis det stadig ikke virker, så prøv lige at fortælle, hvad følgende trace giver (placeret for eksempel inden løkken)
trace("size is "+_root.knapmenu.getBytesTotal());
For hvis din movieclip består af mange bytes, så kan den godt have problemer med at sætte placeringen få millisekunder efter, at det er duplikeret ud...
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.