Avatar billede lequet Nybegynder
16. april 2002 - 06:43 Der er 23 kommentarer og
1 løsning

Random position på Y aksen

Dav :) Jeg sidder for sjov skyld og øver mig lidt i actionscript, men da det ikke er det jeg er bedst til, må jeg lige have lidt hjælp :)

Jeg har et billede/knap (what ever :) som bevæger sig fra et sted til et andet, på nuværende tidspunkt er det helt fastlagt hvorfra og hvortil... Jeg vil så gerne vide hvordan jeg kan gøre det tilfældigt hvor den flytter sig fra og til, men samtidigt skal det være i en lige linie, så start positionen og slutpositionen er ens på Y aksen... Altså den bevæger sig fra den ene side af skærmen til den anden side, men det er så forskelligt hvor langt oppe/nede på skærmen den starter/slutter...

Håber det er til at forstå :)

På forhånd tak
Avatar billede donslund Nybegynder
16. april 2002 - 08:29 #1
Skal den bevæge sig blødt i kurver eller skal den hoppe op og ned fra sted til sted?
Avatar billede lequet Nybegynder
16. april 2002 - 08:36 #2
Den skal bevæge sig "langsomt" fra den ene side til den anden side, det har jeg lige nu gjort ved at lave en motion tween, man skal jo trods alt kunne nå at trykke på den :)
Avatar billede donslund Nybegynder
16. april 2002 - 08:49 #3
Den skal altså bølge op og ned?
I øvrigt, så i stedet for en moption tween kan du give dit mc følgende actionscript:

onClipEvent(enterframe) {
setProperty(this, _x, (getProperty(this, _x)+1);
}

Det får den til at flytte sig et punkt ad gangen. Hvis din film så har 12 fps, så er det 12 punkter i sekundet. Hastigheden kan øges ved at skrive et andet tal i stedet for 1.
Avatar billede donslund Nybegynder
16. april 2002 - 08:50 #4
onClipEvent(enterframe) {
setProperty(this, _x, (getProperty(this, _x)+1));
}
Avatar billede lequet Nybegynder
16. april 2002 - 08:55 #5
Hmm, det giver bare det lille problem, at jeg ikke kan trykke på den, hvilket er meningen, og den laver heller ikke positionen random?!? eller har jeg bare overset noget :)
Avatar billede donslund Nybegynder
16. april 2002 - 09:06 #6
Nej dette er kun bevægelse på x-aksen.

Hvis du vil have random, så prøv med at sætte dete ind.

setProperty(this, _y, random(400));  // 400 er højden på din film. Skal den bevæge sig mellem y= 20 og y=380 skrives random(360)+20 i stedet

Dette sættes ind enfter den anden setProperty linie.
Avatar billede lequet Nybegynder
16. april 2002 - 09:11 #7
Det virker ikke helt efter hensigten, får denne fejl

Clip events are permitted only for movie clip instances

Og ser også lige at du skrev jeg skulle sætte det på mit mc, men det blot et almindeligt symbol (button), kan ikke huske hvordan det er jeg laver det om til et mc :( Er ret nybegynder i flash :)
Avatar billede donslund Nybegynder
16. april 2002 - 09:17 #8
Hvis det er en knap, så når du har det på din scene, markerer du det og trykker på f8 og vælger movieclip. Derved kommer din knap ind i Movieclippet at ligge. Derefter fører du koden ind på dit movieclip.
Avatar billede lequet Nybegynder
16. april 2002 - 09:24 #9
OK, nu kommer der da ingen fejl :) Men jeg tror jeg bør prøve at omformulere det lidt...

Den skal bevæge sig fra venstre mod højre, når den når den højre side af scenen skal den springe tilbage til første frame (Altså starte forfra), med din kode springer den bare rundt mellem forskellige steder på skærmen :(
Avatar billede lequet Nybegynder
16. april 2002 - 09:25 #10
Desuden kan jeg stadig ikke klikke på den, eller den registrere det i hvert fald ikke
Avatar billede donslund Nybegynder
16. april 2002 - 09:27 #11
Jeg laved lige dette:

onClipEvent(enterframe) {
    // Får den til at flytte sig mod højre
    setProperty(this, _x, (getProperty(this, _x)+1));
    // vælger en tilfældig y-værdi
    ny_y = random(360)+20;
    if (ny_y <= getProperty(this, _y)) {
        // sætter ny y
        setProperty(this, _y, (getProperty(this, _y)-1));
    } else {
        setProperty(this, _y, (getProperty(this, _y)+1));
    }
    // hvis x bliver for stor sættes den til at starte forfra.
    if (this._x >= 500) {
        this._x = -20;
}

Sæt det på dit movieclip.
Avatar billede donslund Nybegynder
16. april 2002 - 09:29 #12
Hvis du vil vide om den rammer kan du bruge følgende:

if (this.hittest(_root._xmouse, _root._ymouse) {
_root.gotoAndPlay(2); // går til næste frame
}

Dette sættes ind nederst i din onClipEvent inden for {}
Avatar billede donslund Nybegynder
16. april 2002 - 09:31 #13
Med hittest behøver du ikke at lave en knap, men kan teste direkte på et movieclip.
Det ovenover virker blot ved at musen røre mc'et. Skal man bruge følgende og sætte det udenfor onClipEvent-koden.

onClipEvent(mousedown) {
f (this.hittest(_root._xmouse, _root._ymouse) {
_root.gotoAndPlay(2); // går til næste frame
}
}
Avatar billede donslund Nybegynder
16. april 2002 - 09:33 #14
Det skal bruges, hvis den først skal reagere ved tryk med musen.

Er det alt for forvirrende?
Avatar billede lequet Nybegynder
16. april 2002 - 09:38 #15
Lidt forvirrende :) Der er lige lidt problemer...

1. Den bevæger sig kun ca. 2 cm på skærmen før den starte forfra, den skulle gerne bevæge sig helt til den modsatte side af scenen (550px)

2. Kan ikke få det til at virke med at man kan klikke på den

3. Det er meget små forskelle der er i positionen, rent faktisk kun få pixels
Avatar billede donslund Nybegynder
16. april 2002 - 09:48 #16
Kan du ikke lige maile mig din fla-fil. jd@jellingbogtrykkeri.dk
Avatar billede lequet Nybegynder
16. april 2002 - 09:48 #17
Dette er hvad jeg har ind til videre

onClipEvent (enterFrame) {
    // Får den til at flytte sig mod højre
    setProperty (this, _x, (getProperty(this, _x)+1));
    // vælger en tilfældig y-værdi
    ny_y = random(360)+20;
    if (ny_y<=getProperty(this, _y)) {
        // sætter ny y
        setProperty (this, _y, (getProperty(this, _y)-1));
    } else {
        setProperty (this, _y, (getProperty(this, _y)+1));
    }
    // hvis x bliver for stor sættes den til at starte forfra.
    if (this._x>=550) {
        gotoandplay(1);
    }
}
Avatar billede lequet Nybegynder
16. april 2002 - 09:49 #18
Det kan jeg da godt, øjeblik :)
Avatar billede lequet Nybegynder
16. april 2002 - 09:54 #19
Er sendt :)
Avatar billede donslund Nybegynder
16. april 2002 - 09:59 #20
Tak, vender tilbage når jeg har kigget på den.
Avatar billede donslund Nybegynder
16. april 2002 - 10:26 #21
Havd skal der ske for at man går til slut-billedet?
Avatar billede lequet Nybegynder
16. april 2002 - 10:30 #22
Hvis man når op på 20 (Eller flere) misses, altså hvor man ikke når at klikke...
Avatar billede lequet Nybegynder
16. april 2002 - 13:12 #23
Forhøjede lige points, synes det er rimeligt fair :)

Takker mange gange, det ser faktisk rigtigt godt ud, det er vist kun meget små detaljer der skal rettes :)

Smid lige et svar hvis du altså vil have points :)
Avatar billede lequet Nybegynder
17. april 2002 - 09:13 #24
Går ud fra, at du ikke ønsker points, siden du ikke har svaret :) Hvis jeg tager fejl er du meget velkommen til at brokke dig højlydt :)
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