Avatar billede lokum Nybegynder
03. august 2002 - 17:15 Der er 13 kommentarer og
2 løsninger

AS: alpha ind og ud

Hej,
hvordan laver jeg et Actionscript som bare fader mit MC langsomt ind og langsomt ud igen, langsomt ind og langsomt ud igen, ...

Jeg vil gerne scripte det istedet for motiontweens.

Kys
Lokum
Avatar billede baitianlong Nybegynder
03. august 2002 - 17:25 #1
Det er skam nemt. Skriv dette på dit mc:

onClipEvent(load) {
    tal = 100;
    opned = "ned";
}
onClipEvent(enterFrame) {
    _alpha = tal;
    if(opned == "ned") {
        tal -= 5;
    } else if(opned == "op") {
        tal += 5;
    }
    if(tal == 0) {
        opned = "op";
    } else if(tal == 100) {
        opned = "ned";
    }
}
Avatar billede baitianlong Nybegynder
03. august 2002 - 17:29 #2
onClipEvent(load) {
    tal = 100;
    opned = "ned";
    hastighed = 4; //her kan du justere hastigheden
}
onClipEvent(enterFrame) {
    _alpha = tal;
    if(opned == "ned") {
        tal -= hastighed;
    } else if(opned == "op") {
        tal += hastighed;
    }
    if(tal <= 0) {
        opned = "op";
    } else if(tal >= 100) {
        opned = "ned";
    }
}
Avatar billede nikolajdu Nybegynder
03. august 2002 - 19:36 #3
Jeg er bare såååå træt af at blive kysset af et lokum *GGG*
Avatar billede barklund Nybegynder
03. august 2002 - 20:03 #4
Legende's forslag i forkortet udgave:

onClipEvent(enterFrame) {
    _alpha += (_alpha==0 ? dir=4 : (_alpha==100 ? dir=-4 : dir));
}

/Barklund :o)
Avatar billede barklund Nybegynder
03. august 2002 - 20:08 #5
Der er forresten problemer med at incrementere direkte på _alpha... prøv hellere:

onClipEvent (enterFrame) {
    _alpha = tal+=(tal == 0 ? dir=4 : (tal == 100 ? dir=-4 : dir));
}

Den starter på 0, er det ok?
Avatar billede baitianlong Nybegynder
03. august 2002 - 21:20 #6
blah blah blah ... blærerøv (o; !!! Mit script er smukt *lol*
Avatar billede lokum Nybegynder
05. august 2002 - 10:06 #7
>>> legende, mange tak!
>>> barklund - 0 er godt, men kan du give mig bare en lille forklaring på dit script?
>>> nikolaj, tak.
Avatar billede barklund Nybegynder
05. august 2002 - 10:20 #8
Argh... Havde lige skrevet jeg ved ikke hvor mange linier og så da jeg skulle sende blev det væk i cyberspace... lårt...
Avatar billede barklund Nybegynder
05. august 2002 - 10:28 #9
Men jeg prøver igen...

Mit script er ensbetydende med:

onClipEvent(enterFrame) {
    if (tal == 0) {
        dir = 4;
    } else if (tal == 100) {
        dir = -4;
    }
    tal = tal+dir;
    _alpha = tal;
}

syntaksen:

if (expr) {
    variable = value1;
} else {
    variable = value2;
}

Kan med fordel skrives om til:

variable = (expr ? value1 : value2);

Der beyder præcis det samme, men dog er noget kortere.

Denne kan så fortsættes til for eksempel:

variable = (expr1 ? value1 : (expr2 ? value2 : value3));

Desuden har jeg benyttet en viden om, at "var = var+value" er det samme som "var += value" samt at værditildelinger returnerer den nye værdi (fx: "a = b=4", hvor b bliver 4 og a bliver b's nye værdi, altså 4). Det samler det sammen til:

onClipEvent(enterFrame) {
    dir = (tal == 0 ? 4 : (tal == 100 ? -4 : dir));
    _alpha = tal+=dir;
}

Det kan jo så blive til:

onClipEvent(enterFrame) {
    _alpha = tal+=(dir=(tal == 0 ? 4 : (tal == 100 ? -4 : dir)));
}

Jeg havde blot flyttet "dir=" ind ved siden af de to 4-taller... Faktisk blev ovenstående udledning 4 tegn kortere :o)

/Barklund
Avatar billede barklund Nybegynder
05. august 2002 - 10:28 #10
Haha... det virkede...
Avatar billede barklund Nybegynder
05. august 2002 - 10:29 #11
Nåja... lægger lige et svar...
Avatar billede baitianlong Nybegynder
05. august 2002 - 12:48 #12
Mit latterlige "amatør-script" kan da også starte på nul *lol*

onClipEvent(load) {
    tal = 0;
    opned = "op";
    hastighed = 4; //her kan du justere hastigheden
}
onClipEvent(enterFrame) {
    _alpha = tal;
    if(opned == "ned") {
        tal -= hastighed;
    } else if(opned == "op") {
        tal += hastighed;
    }
    if(tal <= 0) {
        opned = "op";
    } else if(tal >= 100) {
        opned = "ned";
    }
}

Sådan. Jeg kan dog godt se det smarte i Barklunds kode, som er en glimrende og enkel måde at lave et helt script i en linie. Har selv prøvet en sådan metode enkelte gange med blandet success. Men hvis man kan overskue det "for sit lange hår" er det vel klart nemmere...
Avatar billede lokum Nybegynder
25. september 2002 - 22:58 #13
Aj, altså - hvad skete der lige med dette spm? I må undskylde, at jeg lige havde overset jer... I skal jo seføli have point! Lidt svært at fordele, men legende var hurtig og barklund lærerig... værsgo og mange mange tak! (-;
Avatar billede baitianlong Nybegynder
26. september 2002 - 14:28 #14
tak, dit store lokum (o;
Avatar billede barklund Nybegynder
30. september 2002 - 12:40 #15
Jeg tarker også!
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