Er det muligt at give en "hold and wait" commando I ActionScript 2.0? Jeg skal bruge det i forbindelse med en lykke der tegner en boks i ved hjælp af en løkke (se nedenfor), men bokser "vokser" ikke efterhånden som højden stiger. Den drønner blot igennem og viser boksen til sidst.
for (i = 0; i < soejle1_hojde_stop; i++) { trace(i) soejle1._height = i; soejle1._y = Y-i }
Den kan den ikke lide. Der sker ikke rigtig noget. Højde bliver dog heller ikke aktiveret af indgangen i en frame, men udfra en bruger kommando. Har dog prøvet den også og tingene vil ikke rigtig. Du nævner en "setInterval". Jeg har forsøgt at sætte den ind i løkken, men den virker ikke rigtig efter hensigten. Kan du se hvad jeg gør galt? for (i = 0; i < soejle1_hojde_stop; i++) { trace(i) soejle1._height = i; soejle1._y = Y-i setInterval( function(){ trace("interval called"); }, 1000 ); }
Ja, du skal glemme for-løkken, de forskellige gennemløb renderes ikke i flash (som du har opdaget).
Hvis du bruger setInterval skal du definere en funktion som bliver kaldt med et interval indtil du bruger clearInterval til at stoppe den igen.
Du vil have en animation til at køre når brugeren gør et eller andet? Ovenstående onEnterFrame virker formentlig ikke fordi du prøver at kalde onEnterFrame på en knap? (det kan man ikke). onEnterFrame er en MovieClip event.
Jeg er ikke helt med. Skal jeg lave en forløkke omkring setInterval? Det vil sige jeg sender en start commando hen til setInterval også kører den indtil jeg banker en clearInterval af?
Nej, der skal slet ikke være en for-løkke, så snart du kalder setInterval går den igang med at udføre en funktion med det givne interval indtil du stopper den igen.
Kan du give en beskrivelse af problemet? Det er garanteret nemmere hvis jeg ved præcis hvilket resultat du ønsker.
Jeg har et søjlediagram hvor søjlerne lige nu bliver sat til den højde som brugeren har indtastet. Det er dog sådan, at når brugeren skriver en ny værdi ind bliver søjlen vist i den givne højde med det samme og det er her jeg gerne vil have en effekt ind der gør at det ser ud som om søjlen "vokser" og bliver højere løbende i stedet for at det sker med det samme. Jeg har sat hele koden ind, som den ser ud lige nu, håber det kan hjælpe lidt.
Y = 385; X = 91.5; hojde = 240; brede = 470; i = 0; if(hojde < ((flow1*hojde)/100)){ soejle1._y = Y - hojde; soejle1._height = hojde; }else{ soejle1_y_stop = Y-(flow1*hojde)/100; soejle1_hojde_stop = (flow1*hojde)/100; trace(soejle1_hojde_stop) for (i = 0; i < soejle1_hojde_stop; i++) { trace(i) soejle1._height = i; soejle1._y = Y-i setInterval( 10000 ); } } soejle1._width = (time1*brede)/100; soejle1._x = X; X = X+(time1*brede)/100;
Her hedder søjle movieclippet "sojle", idet der trykkes assignes en funktion til onEnterFrame eventen, når animationen er vel at være færdig slettes den igen.
Jeg har bare brugt en lille easing ting her, men det burde illustrere ideen.
mvh mat
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.