Avatar billede fragtrup Nybegynder
29. januar 2002 - 13:30 Der er 7 kommentarer og
2 løsninger

Acceleration i en animation?

Hvis man skal have et objekt til at accelerere i fart eller hvis man skal bremse en bevægelse mere og mere til den står stille. Skal man gøre det manuelt eller findes der noget kode, eller er der noget indbygget i falsh som tager sig af dette?

Det ser lidt træls ud at en animation bare sætter i gang eller stopper brat.

Hjælp mig...
Avatar billede pixelpaw Nybegynder
29. januar 2002 - 13:37 #1
hvis du bruger Motion Tweening, kan du benytte Easing.
Avatar billede barklund Nybegynder
29. januar 2002 - 14:08 #2
For at uddybe:

I din frame-panel, hvor der er valgt Motiontween, kan du vælge easing, hvor -100 giver en starthastighed på 0 og 100 giver er sluthastighed på 0 og derimellem fordeler vægten sig ligeligt...
Avatar billede lingoman Nybegynder
29. januar 2002 - 17:54 #3
1. man KAN gøre det manuelt
2. Der findes og indbyggede funktioner i Flash. Se pixelpaw og barklunds svar
3. Man kan også frit kode det med actionScript

mvh geo
Avatar billede fragtrup Nybegynder
30. januar 2002 - 08:31 #4
Nu er jeg godt på vej, men "lingoman" kan du give et lille kode eksempel på hvordan det skal gribes an i actionscript? Bare så jeg har nogle komandoer eller strukturer jeg kan arbejde videre med.
Avatar billede barklund Nybegynder
30. januar 2002 - 10:22 #5
Robert Penner har lavet nogle smukke easing-scripts:

http://www.robertpenner.com/scripts/easing_equations.txt

Du skal bare gemme filen som .as og så bruge

#include easing_equations.as

Så har du dem til at bruge... Introen forklarer lidt på engelsk...

/Barklund
Avatar billede lingoman Nybegynder
30. januar 2002 - 10:37 #6
Det første man gør når man vil manipulere et objekt via actionScript er at konvertere objektet til et movieClip Selkter dit objekt og vælg>> Insert >> Covert to symbol >> movieClip

Derefter kan vi få movieclippet til at huske hvor meget den skal flytte sig ved at indsætte denne action i actionScript vinduet (vælg expert mode for at copy/paste scriptet)
//////////////////////
onClipEvent (load) {
    shift_x = 150;
    // flyt objektet 150 pixels i alt
    target_x = _x+shift_x;
    // udregn endestation
    accel = 1;
    decel = 3;
    velocity = 0;
    snapRange = 5;
    // vi tilføjer her en funktion som fks øger hastigheden
    // fra 0 indtil den restende afstand er mindre end hastigheden.
    // her vil den så reducere hastigheden så den ikke overskyder sit mål
    function move2target () {
        afstand = target_x-_x;
        // test om objektets nye placeing er tæt nok på målet
        if (Math.abs(afstand)<=snapRange) {
            _x = target_x;
            velocity = 0;
        } else {
            if (afstand>=0) {
                direction = 1;
            } else {
                direction = -1;
            }
            velocity += accel*direction;
            // test om vi kommer til at overskyde vores mål
            overshoot = (Math.abs(velocity)>=Math.abs(afstand));
            if (overshoot) {
                // sæt farten ned
                velocity /= decel;
                move2target();
                // prøv igen indtil vi ikke overskyder målet
            } else {
                // hastigheden er ikke for stor så lad os flytte objektet
                _x += velocity;
            }
        }
    }
}

onClipEvent(enterframe) {
if (_x !=target_x) {
move2target();
}
}
///////////////////////////////
Avatar billede fragtrup Nybegynder
30. januar 2002 - 11:58 #7
Tak for hjælpen!
Avatar billede lingoman Nybegynder
30. januar 2002 - 12:00 #8
velbekommen :)
Husk at lukke spørgsmålet!
Avatar billede lingoman Nybegynder
30. januar 2002 - 12:01 #9
Tak for point :0)
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