Avatar billede swiffer Nybegynder
19. april 2003 - 17:01 Der er 5 kommentarer

Hvor mange linjer er der i tekstfeltet?

Når jeg har lavet et tekstfelt dynamisk't (altså med createTextField), og sat det til automatisk at tilpasse sig efter teksten der bliver sat ind i det (autoSize), er det så muligt at finde ud af hvor mange linjer det indeholder?

Mvh
Swiffer
Avatar billede mat Nybegynder
19. april 2003 - 17:19 #1
hvis du ved hvor høj en linie er kan du vel bare dividere textHeight med det?
Avatar billede barklund Nybegynder
19. april 2003 - 17:48 #2
Hvis du har autosize, så kommer der jo kun et linieskift, hvis der står \n eller \r i teksten (eller <br> eller <p> i html-teksten) - så du kan vel bare tælle dem...
Avatar billede swiffer Nybegynder
19. april 2003 - 19:59 #3
Nej, for den wordWrap'per jo.
Avatar billede barklund Nybegynder
19. april 2003 - 21:43 #4
Mat gav dig svaret - med lidt test, så er liniehøjden 2 pixels større end font-højden:

var minHoejde = 12;
_root.createTextField("txt",1,10,10,100,10);
tf = new TextFormat("verdana",minHoejde);
txt.setNewTextFormat(tf);
txt.wordWrap = true;
txt.textWidth = 100;
txt.border = 1;
txt.autoSize = true;
txt.text = "foo bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar  bar bar bar bar  bar bar bar bar  bar bar bar bar bar  bar bar bar bar bar bar bar bar bar bar bar";
trace((txt.textHeight-0)/(minHoejde+2));

Det er ikke en eviggyldig sandhed, for sætter du minHoejde til 15, så passer det ikke. Men du kan jo prøve dig frem :)

/Barklund
Avatar billede mat Nybegynder
19. april 2003 - 21:45 #5
hehehe jeg lavede lige et lignende eksempel med et input felt og et dynamisk...men med højden 15 :)

this.createTextField("dyn_tekst", 100, 350, 200, 150, 150);
dyn_tekst.type = "dynamic";
dyn_tekst.border = true;
dyn_tekst.multiline = true;
dyn_tekst.wordWrap = true;
dyn_tekst.autoSize = true;


this.createTextField("inp_tekst", 200, 150, 200, 150, 150);
inp_tekst.type = "input";
inp_tekst.border = true;
inp_tekst.multiline = true;
inp_tekst.wordWrap = true;

this.createEmptyMovieClip("tjek", 300);
tjek.onEnterFrame = function() {
    _root.dyn_tekst.text = _root.inp_tekst.text;
}

tjek_btn.onRelease = function() {
    t = _root.dyn_tekst.textHeight;
    trace(t);
    trace("der er t/15 linier i tekstfeltet, og det er: " + t/15);
}



...det er måske ikke verdens mest elegante løsning, men den virker da :)

mvh mat
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