23. maj 2004 - 17:52Der er
21 kommentarer og 1 løsning
Hjælp til at lave Teksteditor
Hej.
Jeg skal lave en slags teksteditor, og jeg kan ikke helt gennemskue hvordan man skal lave funktionaliteten på knapper som "Bold", "Italic", "Color" osv. Man skal jo kunne slå det til og fra mens man skriver. Jeg har tænkt den skal lave html tags i Strengen når man trykker på en knap, og det er jo ikke noget problem, men når man skal kunne se det samtidig med at man laver det, er det lidt mystisk.
Jeg har set en funktion på flashcoders, der konvertere Selection.getBeginIndex og getEndIndex til de faktiske positioner i en html streng. Så kan du nemlig markere en tekst og med en knap for den valgte tekst ind i en <b>her er teksten</b> og dermed lave det bold. Men det kræver jo, at du ved hvilken tekst, der er markeret. Og indekser returneret af Selection giver offset i .text og ikke i .htmlText...
Kan du så bruge Flash MX syntaks istedet for det dér Flash 5 crap... :D
Hvis du kun vil lave, hvad du har herover, så er det enkelt nok:
bold_active = false; my_txt.htmlText = "Her er en ikke bold tekst"; my_button.onRelease() { bold_active = !bold_active; my_txt.htmlText += bold_active ? "</b>" : "<b>"; Selection.setFocus(my_txt); Selection.setSelection(my_txt.text.length, my_txt.text.length); }
Så skulle det vist være der - jeg troede du ville kunne markere tekst skrevet tidligere, men hvis det kun er til at putte det bagerst, så skulle det virke.
Det virker perfekt, indtil man trykker return og derefter slår bold til eler fra, så sletter den linieskiftet, (måske fordi den validerer html koden og finder <p></p>, eller et eller andet)
Hm, man kan haxe det lidt ved at detecte, hvilken tast der sidst blev trykket ned, men det er jo ikke optimalt.
Skal ikke lige kunne sige, hvorfor den gør således. Prøv at trace .text efter du har lavet et linjeskift og trykket på knappen. Slutter den så med et "\n"?
Anyway. på den jeg har uploadet med linket ovenfor skriver jeg hele variablen ud nederst, som du kan se - ved linieskift indsætter den <p></p> og lidt mere
Det hed den... Men det virker ikke - Den hopper hen og markerer sidste tegn, men laver ikke bold.
Og Ak ja, sidste linie skift spises også, men det er jo fordi det er markeret. Hey, det er da derfor. Når man taster noget udskifter man det markerede linieskift
kragekjaer og bufferzone. -> Jeg er desværre ikke interesseret i færdige løsninger, jeg skal fatte det selv, før det er brugbart for mig.
Barklund. -> Beklager min evendelige Flash5 syntax, men den er jo så rørende. Jeg tror ikke Flash er værktøjet at lave dette i, så jeg har rodet en måneds tid med det i Java, og det tegner lovende :s
Jamen tak for points anyways. Java er et langt bedre bud :)
Synes godt om
Ny brugerNybegynder
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.