Avatar billede davidchristensen Praktikant
23. november 2001 - 17:16 Der er 21 kommentarer og
2 løsninger

Actionscript for tweening..?

Hey. :)

Igår fik jeg en god session i actionscripting af selvste Lingoman, som kan gøre mig helt høj. ;)

Vi fandt frem til dether, som et operation der får et MC til at vevæge sig hen til et hvist punkt på skærmen uanset dets udgangspunkt - nu kunne jeg så godt tænke mig at finde ud af hvordan jeg giver det en \"easing-parameter\", altså at bevægelsens hastig gradvist deccelerere(?) (modsat af accelerere) jeg kan slet ik stave idag :)) Hvordan vil sådan et script lyde?..

onClipEvent(load) {
                                            antal_frames = 10;  // hvor mange frames skal animationen bruge ?

                                            target_x = 400;
                                            target_y = 300;
                                            start_x = _x;
                                            start_y = _y;
                                            step_x = (target_x -  start_x)/antal_frames;
                                            step_y = (target_y -  start_y)/antal_frames;
                                           
                                            target_scale = 100;
                                            start_scale = 10;
                                            step_scale = (target_scale -  start_scale)/antal_frames;
                                            _xscale = start_scale;
                                            _yscale = start_scale;

                                            }
                                            onClipEvent(enterFrame) {

                                            if (target_scale > _xscale) {

                                            _xscale += step_scale;
                                            _yscale += step_scale;
                                            _x += step_x;
                                            _y += step_y;

                                            } else {

                                            _xscale = target_scale;
                                            _yscale = target_scale;
                                            _x =  target_x;
                                            _y =  target_y;

                                            }
                      }


David
-
Avatar billede davidchristensen Praktikant
23. november 2001 - 17:16 #1
Overskriften er forøvrigt forkert.. ACTIONSCRIPT FOR EASING, skulle der stå.. :)
Avatar billede davidchristensen Praktikant
23. november 2001 - 17:18 #2
Ordbog:

vevæge = Bevæge
hastig = hastighed

:)
Avatar billede ditlev Juniormester
23. november 2001 - 17:41 #3
Følgende ændring laver easing.
Det kører bedst med en framerate på 24.
Var det noget lignende det du efterlyste?

onClipEvent (load) {
    antal_frames = 60;
    // hvor mange frames skal animationen bruge ?
    target_x = 400;
    target_y = 300;
    friktion = 30;
    start_x = _x;
    start_y = _y;
    step_x = (target_x-start_x)/antal_frames;
    step_y = (target_y-start_y)/antal_frames;
    target_scale = 100;
    start_scale = 10;
    step_scale = (target_scale-start_scale)/antal_frames;
    _xscale = start_scale;
    _yscale = start_scale;
}
onClipEvent (enterFrame) {
    hastX = (target_x-_x)/friktion;
    hastY = (target_y-_y)/friktion;
    if (target_scale>_xscale) {
        _xscale += step_scale;
        _yscale += step_scale;
        _x += hastX;
        _y += hastY;
    } else {
        _xscale = target_scale;
        _yscale = target_scale;
    //    _x = target_x;
    //    _y = target_y;
    }
}

/Ditlev
Avatar billede mat Nybegynder
23. november 2001 - 17:41 #4
f.eks:

onClipEvent(load) {
        antal_frames = 10;  // hvor mange frames skal animationen bruge ?

          target_x = 400;
          target_y = 300;
          start_x = _x;
          start_y = _y;
          step_x = (target_x -  start_x)/antal_frames;
          step_y = (target_y -  start_y)/antal_frames;
                                           
          target_scale = 100;
          start_scale = 10;
          step_scale = (target_scale -  start_scale)/antal_frames;
          _xscale = start_scale;
          _yscale = start_scale;
          easingFactor = 3;

}
onClipEvent(enterFrame) {

    if (target_scale > _xscale) {

          _xscale += step_scale/easingFactor;
          _yscale += step_scale/easingFactor;
          _x += step_x/easingFactor;
          _y += step_y/easingFactor;

      } else {

          _xscale = target_scale;
          _yscale = target_scale;
          _x =  target_x;
          _y =  target_y;
      }
}
Avatar billede mat Nybegynder
23. november 2001 - 17:43 #5
nej, hvor var det tæt på jeg kom først :)
Avatar billede ditlev Juniormester
23. november 2001 - 17:46 #6
Hehe...
Ja, men vi er vel principielt enige i metoden, så jeg deler gerne, hvis David kan bruge begge scripts :o)
Avatar billede davidchristensen Praktikant
23. november 2001 - 17:46 #7
Ditlev kalder det friktion, Mat kalder det for easingFactor.. Og desuden er det placeret forskelligt i scriptet, men det er måske ligemeget?.. :)

David
-
Avatar billede mat Nybegynder
23. november 2001 - 17:50 #8
det er fuldstændig ligegyldigt hvad du kalder den....og princippet er det samme, som jeg umiddelbart ser det (jeg er på druk) :)
Avatar billede ditlev Juniormester
23. november 2001 - 17:52 #9
Idéen er den samme, men der kan være små forskelle, jeg har bla. ikke lavet easing  på skaleringen.
Prøv dem af, og vælg den du synes virker best på dit script.
Avatar billede davidchristensen Praktikant
23. november 2001 - 17:58 #10
Okay.. Jeg kan egentlig få ditlevs til at virke bedst.. :)

Jeg er helt ny i sådannoget \"kompliceret\" actionscripting her, og jeg forstår simpelthen ikke at det er ligemeget hvad man skriver i koden.. Hvordan kan det være at Flash forstår det danske ord \"Friktion\" ? Jeg spør måske dumt.. :)

Ellers, tak gutter..

David
-
Avatar billede davidchristensen Praktikant
23. november 2001 - 18:01 #11
Okay.. Ditlevs ser ud til at være den jeg kan finde ud af at få til at virke..

Jeg er helt ny i dether \"avanceret\" actionscripting - jeg fatter ikke hvorfor det er ligegyldigt hvad man skriver; eks. at programmet overhovedet forstår det danske ord \"Friktion\"..? Måske spør jeg dumt :)

Hvor kan man lære syntaxen til actionsscript henne og hvor findes der en liste over tilladte udtryk? :)

David
-
Avatar billede mat Nybegynder
23. november 2001 - 18:01 #12
det er jo bare en variabel, den kan du jo egentlig kalde hvad du vil jeg foretrækker at kalde dem det jeg synes beskiver dem bedst, og det er jo individuelt)

....vil du stadig dele Ditlev?  ;)
Avatar billede davidchristensen Praktikant
23. november 2001 - 18:02 #13
Sjovt, jeg troede den havde slettet den kommentar jeg har skrevet ovenover den der er ovenover denher.. :) (Jeg er et vrøvlehovede i dag..)
Avatar billede davidchristensen Praktikant
23. november 2001 - 18:05 #14
Okay, nu er jeg helt lost.. Man kan kalde en variabel hvad man vil, fair nok - men hvor diffinerer man den så? Jeg kan da umiddelbart ikke se nogen andre diffinationer andre steder, der forklare hvad den skal kunde (andet end lige en lillesmule i nederste del af scriptet).. Øv, jeg forstår det ik helt..
Avatar billede davidchristensen Praktikant
23. november 2001 - 18:05 #15
kunde = kunne
Avatar billede ditlev Juniormester
23. november 2001 - 18:08 #16
Friktion er en variabel som vi selv bestemmen.
Det er iøvrigt en værdi du kan ændre på, således at easingen bliver større eller mindre. Prøv at give den værdien 5 istedet for, og se hvad der sker.
Actionscripts kan du lære mange steder. Prøv Flash programmets Help. Prøv www.actionscripts.org prøv på macromedias hjemmeside. Der er mange muligheder.
Forhåbentlig vil du snart kunne finde tutorials på dansk, når vi fra eksperten får strikket en hjemmeside sammen.

/Ditlev

Ps. ja - mat, jeg deler gerne, fordi dit script virker OK.
Avatar billede mat Nybegynder
23. november 2001 - 18:11 #17
du er en venlig mand ditlev, jeg fik jo osse point :)

...og jeg glæder mig til at se frugten af jeres arbejde med et dansk flashresourcesite (endelig, langt om længe)
Avatar billede davidchristensen Praktikant
23. november 2001 - 18:14 #18
...det glæder jeg mig os\' til. -Og skulle I mangle en grafiker til at sætte layoutet lidt på sned, så kan I jo sige til.. ;)

David
-
Avatar billede lingoman Nybegynder
23. november 2001 - 18:14 #19
vil du ikke også bidrage med nogle tuts, mat ?
Avatar billede ditlev Juniormester
23. november 2001 - 18:22 #20
David - held og lykke med scriptet.
Jeg er på vej til årets første juleforkost, så der kommer ikke mere fornuftigt herfra i aften.
(Hvis der gør er det i hvert fald ikke fornuftigt).. :o)
Avatar billede mat Nybegynder
23. november 2001 - 18:26 #21
lingoman>> Jow, det er klart en mulighed....alt for at støtte et godt projekt....(jeg skal lige færdiggøre en række projekter og et par eksamener) :)
Avatar billede lingoman Nybegynder
23. november 2001 - 18:50 #22
mat>> Held og lykke med eksamen :)
ditlev>> overskrifterne i formiddagsbladene sagde ellers at julefrokosten blev banlyst ;)
Kan du ha\' en god fest :)
Avatar billede gotcha Nybegynder
25. november 2001 - 15:20 #23
Når ditlev bruger begrebet friktion, så dækker det over gnidningsmodstand (f.eks. fra underlaget eller luften). Hvis vi betragter opbremsningen af en cykel på en vej, så vil den set fra siden få en bevægelse, der ligner den, som koden udfører.

Hvis vi skulle gøre det mere eksakt, så forudsætter vi, at der er tale om en konstant acceleration (acceleration er blot ændring i hastighed, så her har vi en negativ acceleration, da hastigheden bliver mindre og mindre). Vi ville så lægge accelerationen til hastigheden og hastigheden til positionen. Robert Penner har udformet en række ligninger til at bevæge movie clips vha. ActionScript, som kan findes på http://www.robertpenner.com/scripts/easing_equations.txt .

Den ovenstående kode er sådan set bare en nem måde at efterligne bevægelsen fra den bremsende cykel ved hele tiden at flytte os en brøkdel af afstanden (denne brøkdel er så mindre næste gang, og dermed bliver hastigheden mindre og mindre).

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