Avatar billede all_for_you Nybegynder
20. januar 2002 - 13:25 Der er 25 kommentarer og
1 løsning

Hurtige biler... Hvordan laver jeg en bevægende tekst

Jeg kunne godt tænke mig at lave en ligende effekt som findes på http://www.koenigsegg.com/frameset.html under fx \"The Car\">>\"specifications\"... (Teksten som kommer \"flyvende\" fra en ad siderne. Effekten er formentlig et movieclip som bliver aktiveret, men hvordan kan jeg \"gå ind i\" movieclippets timeline, for herved at bestemme den pæcise frame, som brugeren skal hen til? Jeg har 10 tekstbidder som netop skal kører ligesom koenigeggs.com. Tekstbidderne skal styres af to pileknapper. Dvs. jeg ønsker actions-koder til at styre et movieclip.
Avatar billede barklund Nybegynder
20. januar 2002 - 14:09 #1
Altså den del, hvor teksterne står efter hinanden i et langt movieClip, men man ser kun den del, som man har klikket på. Når der så klikkes på noget nyt, så scroller den hen over punkterne til den kommer til det valgte - korrekt forstået?

Men i din version, skal man kun kunne vælge forrige eller næste og ikke en vilkårlig én?

/Barklund
Avatar billede all_for_you Nybegynder
20. januar 2002 - 14:22 #2
Yes! korrekt forstået.

Ja. jeg havde tænkt mig en pil til forrige og en pil til næste (evt. kunne man godt lave 1, 2, 3... 9 og 10. Så kunne man trykke på dem, hvis man hellere ville det istedet for at bruge pilene.)
Avatar billede mosegris.dk Nybegynder
20. januar 2002 - 14:40 #3
Hejsa!

Det de har lavet dér er ikke i flash! Det er lavet i JavaScript *´S*!

/Rasmus
Avatar billede all_for_you Nybegynder
20. januar 2002 - 14:42 #4
OK... Men det jeg vil lave skal være i flash ;-)
Avatar billede mosegris.dk Nybegynder
20. januar 2002 - 14:46 #5
Ja, hehe, okay ;o) Helt i orden *S*
Avatar billede all_for_you Nybegynder
20. januar 2002 - 14:50 #6
Mosegris...>>Men det kunne godt være lavet i flash *G*... havde ikke lige tjekket kildekoden, men gik bare ud fra at det var flash.... ha ha... Så kan du måske ik hjælpe?
Avatar billede barklund Nybegynder
20. januar 2002 - 15:45 #7
Det er nem version, som er svær at opdatere, og en svær version, som er nem at opdatere... Det nemmeste er simpelthen at lægge alle teksterne og billederne ind efter hinanden i et langt mc. Du kan selvfølgelig lave grafikelementer i hver sit symbol og sørge for, at de for eksempel holder sig inden for 0,0 til 400,300. Herefter lægger du alle disse ind i dit holder-movieClip og forskyder dem med x=400*nummer... De vil ret hurtigt komme uden for skærmen, men de eksisterer alligevel...

Herefter har du i root et layer øverst, hvor knapperne er, under det et baggrundslag med et hul, der er 300*400, og under det et layer, hvor du indsætter dit holder-movieClip.

Giver det mening?

Knapperne kommer vi til om lidt...

At eksemplet var lavet i js kunne du nemt se ved blot at højreklikke. Så står du ikke Flash-menuen men en standard html-menu...

/Barklund
Avatar billede all_for_you Nybegynder
20. januar 2002 - 15:59 #8
Den er jeg nogle lunde med på: Jeg laver et langt movieclip, hvor der er et vis antal pix i mellem hver tekst.... Nu skal jeg bare have en \"kode\" under næste/forrige som kan sige gå til frame X i movieclippet...
Avatar billede barklund Nybegynder
20. januar 2002 - 16:15 #9
okay og godt så... Dit lange mc kalder du for \"texts\".

Herefter laver du et nyt movieClip, som er tomt - et såkaldt smartClip. Dette indsætter du i et nyt layer ude i roden og kalder mc\'et for \"smartclip\". På dette skriver du:

onClipEvent(load) {
    moving = 0;
    width = 400; //her indsætter du bredden af de enkelte step
    speed = 40; //her indsætter du hvor mange px, der skal passeres pr frame
    num_texts = 10; // antal texter
    current = 1; //vi starter på billede 1
    start_x = _root.texts._x;
    start_y = _root.texts._y;
    function goto(pict) {
        if (pict != current && pict > 0 && pict < num_texts) {
            next = pict;
            target_x = start_x+(pict-1)*width;
            direction = (_root.texts._x-target_x > 0) ? -1 : 1;
            moving = 1;
        }
    }
}
onClipEvent(enterFrame) {
    if (moving) {
        if (direction*(_root.texts._x+direction*speed) >= direction*target_x) {
            _root.texts._x = target_x;
            moving = 0;
            current = next;
        } else {
            _root.texts._x += direction*speed;
        }
    }
}

Det er skrevet sådan lidt ud i luften, men det skulle virke...

Herefter kan du blot kalde den med:

_root.smartclip.goto(4)

for at gå til nummer 4, eller

_root.smartclip.goto(_root.smartclip.current+1);

for at gå til den næste. -1 istedet giver så selvfølgelig den forrige.

Giver det stadig mening?

/Barklund
Avatar billede barklund Nybegynder
20. januar 2002 - 16:16 #10
Denne kode kunne selvfølgelig være skrevet direkte på \"texts\" og ikke dermed undgå alle krydsreferncerne, men jeg har det godt med at skille kode fra grafik på denne måde...
Avatar billede barklund Nybegynder
20. januar 2002 - 16:17 #11
de tre variabler: width, speed og num_texts skal du huske at ændre så de passer til dit eksempel...
Avatar billede all_for_you Nybegynder
20. januar 2002 - 16:26 #12
OKay... det vil jeg prøve at få til at fungere. Det ser lidt uoverskueligt ud, men skal bare lige tjekke det lidt ud *S*. Forresten nu jeg har en ekspert... hvordan kan jeg undgå at et movieclip går i gang når jeg springer mellem forskellige scener (i samme movie)? Jeg har sat en STOP-action ind i starten af hver scene, men alligevel kører movieclippene. Koden på selve MC hedder:onClipEvent (enterFrame) {
    gotoAndStop (_currentframe+_root.direction);
}

Kan du hjælpe?
Avatar billede barklund Nybegynder
20. januar 2002 - 16:32 #13
Du har altså det samme mc i forskellige scener?

Brug blot en

onClipEvent(load) {
    stop();
}

eller inde i mc\'et skriv stop(); i den allerførste frame...

/Barklund
Avatar billede barklund Nybegynder
20. januar 2002 - 16:34 #14
Forresten:

At du har en stop() i din _root-timeline påvirker (heldigvis) ikke alle de andre timelines. For de forskellige timelines skal kunne stoppes og startes efter behov uafhængigt af hinanden...
Avatar billede all_for_you Nybegynder
20. januar 2002 - 16:43 #15
Den med at sætte en stop() i den aller første frame virker ikke (som jeg heller ikke forstår?).

Selve indholdet af mc er ikke det samme, men det er funktionen. Mc fungere som en slags scrollbar. Men hver gang jeg skifter scene kører scrollbaren i bund.
Avatar billede barklund Nybegynder
20. januar 2002 - 16:53 #16
Hvad er værdien af variablen _root.direction?

For hvis den ikke er 0, så bliver den jo ved med at lægge værdien til dens nuværende frame, som så hele tiden bliver større/mindre. Det har du jo selv sagt, at den skal...
Avatar billede all_for_you Nybegynder
20. januar 2002 - 16:59 #17
Som du nok allerede har opdaget er programmering ikke min stærkeside. Okay. Du har fundet \"fejlen\". værdien er:

on (press) {
    _root.directionmenu = -1;
}
on (release, rollOut) {
    _root.directionmenu = 0;
}

For pil-op

og modsat for pil-ned...
Hvad kan jeg så gøre???
Avatar billede all_for_you Nybegynder
20. januar 2002 - 17:04 #18
Hvad betyder root.. spm.: 20/01 2002 15:45:44.. Noget med jeg skal ligge den i \"har du i root et layer øverst, ... citat\"

Og hvad med:
20/01 2002 16:15:09  : \"roden\" hvad er det??
Avatar billede barklund Nybegynder
20. januar 2002 - 17:25 #19
Jeg mener med begge dele din main timeline - main stage... que?
Avatar billede barklund Nybegynder
20. januar 2002 - 17:28 #20
men der står da ikke directionmenu i koden længere oppe... der står blot direction... lad dine knapper være og skriv så på scrollbaren:

onClipEvent(load) {
    _root.directionmenu = 0;
}
onClipEvent(enterFrame) {
    next = _currentFrame+_root.directionmenu;
    if (next > 0 && next<=_totalFrames) {
        gotoAndStop(next);
    }
}

Så....
Avatar billede all_for_you Nybegynder
20. januar 2002 - 17:39 #21
Det så jeg. Jeg kom bare til at kopiier fra et anden movieclip... Jeg har ændret det. Så det er som ovenstående, men movieclippet kører stadigvæk.
Lad mig uddybe:
Jeg har en knap som har action:

on (press) {
    gotoAndStop (\"menu\", 1);
}

(Knappen henviser til en ny scene)

Idet jeg kommer til den nye scene starter scrollbaren/Movieclippet. Oven på MC har jeg action :

onClipEvent (load) {
    _root.directionmenu = 0;
}
onClipEvent (enterFrame) {
    next = _currentframe+_root.directionmenu;
    if (next>0 && next<=_totalframes) {
        gotoAndStop (next);
    }
}

Inden i MC har jeg sat en STOP i første frame.

På knappen som skulle activere klippet står der:

on (press) {
    _root.directionmenu = 1;
}
on (release) {
    _root.directionmenu = 0;
}

... Er det sådan at det ville være nemmere at jeg sendte dig filen? Up to you
Avatar billede barklund Nybegynder
20. januar 2002 - 17:43 #22
Prøv engang... morten@barklund.dk
Avatar billede all_for_you Nybegynder
20. januar 2002 - 18:40 #23
Tak skal du have... Ja computer og programmering er nu engang nogle underlige creatures.

Hvis jeg laver labels., skal jeg så bare give mine frames navne? og kun arbejde i én scene?
Det bliver lidt mere besværligt at holde styr på, men det gå vel nok!
Avatar billede barklund Nybegynder
20. januar 2002 - 18:42 #24
det tror jeg er løsningen... Det andet er for mærkeligt...
Avatar billede barklund Nybegynder
20. januar 2002 - 18:53 #25
Jeg svarer lige for sjovs skyld... Skal du have yderligere hjælp?
Avatar billede all_for_you Nybegynder
20. januar 2002 - 19:27 #26
Nej. Jeg afslutter nu! Tak for hjælpen. Her er dine velfortjente point!
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