PDA

Volledige versie bekijken : Aanpassen TextArea opmaak (margins)


TimBirth
%Europe/Berlin %577 %2005, 14:50
Hallo,

Ik heb een TextArea component aangemaakt met tekst, deze TextArea wil ik zo aanpassen dat er ruimte (margins) rondom de tekst komt aan alle kanten (top, left, bottom, right). De zijkanten is geen probleem, hiervoor kan ik bv het volgende gebruiken:

myTextArea.setStyle ("marginLeft", "10");
myTextArea.setStyle ("marginRight", "10");

Dit werkt echter niet voor de boven en onderkant.

Het probleem is ook dat de margins alleen moeten gelden voor de text, niet voor de scrollbar. De scrollbar moet wel de hele hoogte in beslag nemen van de TextArea en niet rekening houden met de margins. Om deze reden ben ik in eerste instantie tot de conclusie gekomen dat het gebruiken van losse onderdelen (losse tekstveld (dynamisch) en scrollbar) ook problemen op gingen leveren. Flash zet stug de hoogte van de scrollbar gelijk aan de hoogte van het tekstveld.

Ik hoop dat jullie enige ideeen kunnen spuien om het voor elkaar te krijgen...

gr.

Mediamonkey
%Europe/Berlin %606 %2005, 15:33
We hadden het er al even over per telefoon, en ik kon eigenlijk alleen maar alternatieven verzinnen die een top/bottom margin simuleren..

De eerste was om de textArea component te extenden en het textveld per code over de y-as te schuiven en in height te laten krimpen voor de margin.

Een andere oplossing is om voor en na de text een regel toe te voegen met een zeer klein font, zoals dit:
var topmargin = "<font size='5'><br></font>";
var bottommargin = "<font size='2'><br></font>";
var bodytext = "<font size='12'>A warm welcome is assured at Lorum Old Rectory, where guests can enjoy luxury guest accommodation in a charming [1863] Manor House. Situated in the rich Barrow River valley at the foot of the Blackstairs Mountains the region is renowned for its beautiful scenery, numerous activities and rich heritage.</font>";
myTextArea.text = topmargin + bodytext + bottommargin;
myTextArea.editable = false;
Dus eigenlijk alleen een break met een klein font. Het is dan wel jammer dat je die regel kunt selecteren, maar dat kun je natuurlijk ook uitzetten in de textarea ;)

Succes man!

Mediamonkey
%Europe/Berlin %619 %2005, 15:52
En hier is een mooiere uitwerking, waarbij css wordt gebruikt. In dit geval handmatig ingevoerd, maar het kan dus ook met een extern ingeladen css-file.

import TextField.StyleSheet;
var css = new StyleSheet();

var top = new Object();
top.fontSize = 5;
css.setStyle(".topmargin", top);
delete top;

var bottom = new Object();
bottom.fontSize = 5;
css.setStyle(".bottommargin", bottom);
delete bottom;

var main = new Object();
main.marginLeft = 15;
main.marginRight = 15;
main.fontSize = 20;
css.setStyle(".maintext", main);
delete main;

var topmargin = "<span class='topmargin'><br></span>";
var bottommargin = "<span class='bottommargin'><br></span>";
var bodytext = "<span class='maintext'>A warm welcome is assured at Lorum Old Rectory, where guests can enjoy luxury guest accommodation in a charming [1863] Manor House. Situated in the rich Barrow River valley at the foot of the Blackstairs Mountains the region is renowned for its beautiful scenery, numerous activities and rich heritage.</span>";

myTextArea.styleSheet = css; // belangrijk! éérst style assignen, dan pas text toevoegen!!
myTextArea.text = topmargin + bodytext + bottommargin;
myTextArea.editable = false;