Avatar billede schwaner Nybegynder
16. august 2004 - 10:29 Der er 7 kommentarer

Hold pause commando

Hej med jer.

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
}
Avatar billede mat Nybegynder
16. august 2004 - 10:39 #1
Kan du ikke bare bruge et onEnterFrame loop?

i = 0;
soejle1.onEnterFrame = function() {
    if (i < soejle1_hojde_stop) {   
        this._height = i;
        soejle1._y = Y-i;
        i++;
    }
}

Ellers er der setInterval, som også kører en funktion med et givent interval.

mvh mat
Avatar billede schwaner Nybegynder
16. august 2004 - 10:47 #2
Hej mat.

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 );
}
Avatar billede mat Nybegynder
16. august 2004 - 10:56 #3
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.

mvh mat
Avatar billede schwaner Nybegynder
16. august 2004 - 11:07 #4
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?
Avatar billede mat Nybegynder
16. august 2004 - 11:17 #5
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.
Avatar billede schwaner Nybegynder
16. august 2004 - 11:33 #6
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;
Avatar billede mat Nybegynder
16. august 2004 - 12:02 #7
Der er vel mere end det der?

Her er et hurtigt eksempel på en animation ved tryk på en knap:

on (release) {
    sojle.onEnterFrame = function() {
        scale_y = 100; // slut højde
        this._height += (scale_y - this._height) / 4;
        if (scale_y - this._height < 1) {
            delete this.onEnterFrame;   
        }
    }
}

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
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