Avatar billede cgleerup Nybegynder
13. januar 2008 - 17:55 Der er 15 kommentarer og
1 løsning

Vertical rulletekst - hvordan?

Jeg vil gerne vise en rulletekst hvor en linje vises ad gangen,
det vil sige i min flash video er der et bestemt sted på "stage" hvor jeg gerne vil have at en linje er synlig.

Der skal eksempelvis stå:
Mælk
Gær
Smør
Magarine
Mel

Hvor én linje så vises ad gangen. Lidt som en scroll tekst, bare nede fra og op i stedet for fra højre mod venstre.

Jeg vil gerne holde det så simpelt som muligt, og gerne have mulighed for at skrive teksten direkte i mit action script?

noget bud?
Avatar billede Slettet bruger
14. januar 2008 - 08:27 #1
Tja... Jeg kan give dig teorien, men hvis du vil have et konkret kodeeksempel, kommer det til at tage lidt tid -- og tid har jeg ikke for meget af, for jeg tror, min matematiklærer bliver lidt træt af mig, hvis jeg skriver AS i timen :)

Du kan oprette en tekstboks med ActionScript og tilpasse den teksten. Herefter kan du give den en onEnterFrame, der får den til at køre opad og sletter den, når den når forbi toppen af skærmen.

Hvor god er du til AS? Er ovenstående forståeligt?
Avatar billede cgleerup Nybegynder
15. januar 2008 - 08:02 #2
jeg er ikke SUPER sej
Avatar billede Slettet bruger
15. januar 2008 - 09:57 #3
Okay... Men forstod du princippet i ovenstående?
Avatar billede cgleerup Nybegynder
18. januar 2008 - 17:50 #4
Tjaa, forstår princippet men er ikke helt klar over hvordan!
Avatar billede Slettet bruger
18. januar 2008 - 19:13 #5
Så tager vi det lige fra en ende af...

Du kan oprette et nyt MC således:
destination.createEmptyMovieClip("rulletekst", 0); // Hvor 0 er depth

Så kan du oprette et tekstfelt derinde:
destination.rulletekst.createTextField("tekst", 0, -200, -300, 400, 600); // navn, depth, x, y, width, height

Derefter sættes nogle egenskaber:
destination.rulletekst.tekst.selectable = false; // Så man ikke kan markere teksten
destination.rulletekst.tekst.setTextFormat(tekstformat); // Bare skriv hvis du vil vide mere
destination.rulletekst.tekst.text = "Rulleteksten skal stå her.\nDette er så linie to.\nOg tre."; // Selve teksten

Nu kan du indstille MC'et:
destination.rulletekst._x = (Stage.width-destination.rulletekst._width)/2; // Indtiller start-x-værdien, så teksten er midt i billedet
destination.rulletekst._y = Stage.height // Gæt en gang... Ja, det er rigtigt! Den sætter tekstens y-værdi, så den starter i bunden af scenen

Selve bevægelsen kommer her (lidt mere avanceret):
destination.rulletekst.onEnterFrame = function()
{
    if (this._y > Stage.height-this._height)
        this._x += 5 // 5 er hastigheden
    else
        this.removeMovieClip(); // Sletter MC'et med teksten, når det har passeret skærmens top
}


Ovenstående burde virke.
Avatar billede Slettet bruger
18. januar 2008 - 19:14 #6
Whoa! Så vidt jeg husker, skal man altid sætte 'text format' efter 'text'... Altså gør ændringen af tekstformatteringen her
destination.rulletekst.tekst.setTextFormat(tekstformat); // Bare skriv hvis du vil vide mere
destination.rulletekst.tekst.text = "Rulleteksten skal stå her.\nDette er så linie to.\nOg tre."; // Selve teksten
ingen forskel. Byt i stedet om på dem:
destination.rulletekst.tekst.text = "Rulleteksten skal stå her.\nDette er så linie to.\nOg tre."; // Selve teksten
destination.rulletekst.tekst.setTextFormat(tekstformat); // Bare skriv hvis du vil vide mere

Sådan!
Avatar billede cgleerup Nybegynder
23. januar 2008 - 16:07 #7
takker, er der mulighed for at lave sådan at rulleteksten fader ud, altså i top og bund skal den gå fra 100% til 0% opacity over x-antal pixels, eksempelvis 50 :-)
Avatar billede Slettet bruger
23. januar 2008 - 16:13 #8
Hmm... Da er det nok lettest at tilføje en shape med en linier farve fra eksempelvis 0 % sort til 100 % sort. Er det i orden at lave det i hånden eller skal det også være med kode?
Avatar billede cgleerup Nybegynder
23. januar 2008 - 16:19 #9
Det er fordi flashen er transparent for at det website den skal vises på kan bibeholde sin gradians/liniere farve. Kan det slet ikke laves med kode?
Avatar billede Slettet bruger
23. januar 2008 - 16:47 #10
Tja, så skal hver enkelt linie laves som et selvstændigt tekstfelt, hvor du så ændrer selve tekstens transparens... Det kommer til at tage tid at lave og processorkraft at vise.
Avatar billede cgleerup Nybegynder
23. januar 2008 - 17:03 #11
vildt skud - kan man eventuelt måle på den farve der ligger under et object og så generere en linerfarve udfra målingen? - vis du kan følge mig?
Avatar billede Slettet bruger
23. januar 2008 - 17:05 #12
Jeg kan godt følge dig, og det kan muligvis lade sig gøre, men så er det vist lettere at skrive funktionen til rulleteksten i JavaScript og køre det direkte på siden!
Avatar billede cgleerup Nybegynder
23. januar 2008 - 17:23 #13
hmmm - ok, men i hvertfald tak for hjælpen! - arbejder du freelance også? mit firma bruger tiltider flash folk - og der er nogle projekter igang lige nu!
Avatar billede cgleerup Nybegynder
23. januar 2008 - 17:24 #14
smider du et svar, så acceptere jeg så du kan få point!
Avatar billede Slettet bruger
23. januar 2008 - 17:38 #15
Svar :o)
Jeg har ikke arbejdet freelance før, men du er velkommen til at kontakte mig...
(email fjernet af admin)
Avatar billede Slettet bruger
04. april 2008 - 10:50 #16
Det er altid høfligt at svare ;P
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