Wubinator
%Europe/Berlin %487 %2010, 11:42
Hoi heren,
Tijd geleden dat ik hier was, alles goed?
Ik heb een vraag over htmlText in een textArea. Ik krijg een html text uit een Content Management Systeem van een klant. Deze tekst moet als een banner worden getoond, en dus volledig en zonder scrollbars worden getoond. Daarom wil ik de hoogte van mijn TextArea (gebruik ik om eventuele <a href .. /> links de goede style te geven) aanpassen aan de hand van de grootte die de htmlText heeft.
Ik dacht hiervoor het volgende te gebruiken: measureHTMLText(source).height; Dit geeft wel de hoogte weer van de tekst (bijvoorbeeld 16) maar niet van de text in multiline.
Nou is mijn vraag, hoort measureHTMLText(..).height de hoogte door te geven van teksten in multiline (en is dus het moment waarop ik het opvraag te vroeg, omdat de tekst nog niet over meerdere tekst regels is geplaatst)
Of geeft measureHTMLText(..).height nooit de hoogte van teksten op meerdere regels weer (en hoe kan ik dit dan het beste oppakken?)
Hieronder staat het component waarin ik dit nodig heb:
public class RichTextVisualizer extends TextArea implements IVisualizer
{
public function RichTextVisualizer()
{
super();
this.styleSheet = getTextStyle();
this.verticalScrollPolicy = "off";
}
public function setSource(source:String):void
{
this.htmlText = source;
this.addEventListener(TextEvent.LINK, handleLinkClick);
this.height = measureHTMLText(source).height;
}
public function getDimensions():Array
{
var returnValue:Array = new Array(2);
returnValue[0] = measureHTMLText(this.htmlText).width;
returnValue[1] = measureHTMLText(this.htmlText).height;
return returnValue;;
}
/**
* Let's add a little style to the HTML text and mouse roll-over actions (the url's).
* */
private function getTextStyle():StyleSheet
{
var textStyle:StyleSheet = new StyleSheet();
textStyle.setStyle("a", { color:"#245290", textDecoration:"none" });
textStyle.setStyle("a:link", { textDecoration:"none", color:"#245290" });
textStyle.setStyle("a:hover", { textDecoration:"underline" });
return textStyle;
}
/**
* Handle the click action on links within the html text using TextEvent.
* */
private function handleLinkClick(event:TextEvent):void
{
var prefix:String = event.text;
var split:Array = prefix.split(":");
var type:String = split[0];
var id:String = split[1];
if (split.length > 2)
id = split[1] + ":" + split[2]; // recreate the http link
var request:URLRequest = new URLRequest(id);
navigateToURL(request, "_blank");
return;
}
}
Thanks alvast!
Rick
Tijd geleden dat ik hier was, alles goed?
Ik heb een vraag over htmlText in een textArea. Ik krijg een html text uit een Content Management Systeem van een klant. Deze tekst moet als een banner worden getoond, en dus volledig en zonder scrollbars worden getoond. Daarom wil ik de hoogte van mijn TextArea (gebruik ik om eventuele <a href .. /> links de goede style te geven) aanpassen aan de hand van de grootte die de htmlText heeft.
Ik dacht hiervoor het volgende te gebruiken: measureHTMLText(source).height; Dit geeft wel de hoogte weer van de tekst (bijvoorbeeld 16) maar niet van de text in multiline.
Nou is mijn vraag, hoort measureHTMLText(..).height de hoogte door te geven van teksten in multiline (en is dus het moment waarop ik het opvraag te vroeg, omdat de tekst nog niet over meerdere tekst regels is geplaatst)
Of geeft measureHTMLText(..).height nooit de hoogte van teksten op meerdere regels weer (en hoe kan ik dit dan het beste oppakken?)
Hieronder staat het component waarin ik dit nodig heb:
public class RichTextVisualizer extends TextArea implements IVisualizer
{
public function RichTextVisualizer()
{
super();
this.styleSheet = getTextStyle();
this.verticalScrollPolicy = "off";
}
public function setSource(source:String):void
{
this.htmlText = source;
this.addEventListener(TextEvent.LINK, handleLinkClick);
this.height = measureHTMLText(source).height;
}
public function getDimensions():Array
{
var returnValue:Array = new Array(2);
returnValue[0] = measureHTMLText(this.htmlText).width;
returnValue[1] = measureHTMLText(this.htmlText).height;
return returnValue;;
}
/**
* Let's add a little style to the HTML text and mouse roll-over actions (the url's).
* */
private function getTextStyle():StyleSheet
{
var textStyle:StyleSheet = new StyleSheet();
textStyle.setStyle("a", { color:"#245290", textDecoration:"none" });
textStyle.setStyle("a:link", { textDecoration:"none", color:"#245290" });
textStyle.setStyle("a:hover", { textDecoration:"underline" });
return textStyle;
}
/**
* Handle the click action on links within the html text using TextEvent.
* */
private function handleLinkClick(event:TextEvent):void
{
var prefix:String = event.text;
var split:Array = prefix.split(":");
var type:String = split[0];
var id:String = split[1];
if (split.length > 2)
id = split[1] + ":" + split[2]; // recreate the http link
var request:URLRequest = new URLRequest(id);
navigateToURL(request, "_blank");
return;
}
}
Thanks alvast!
Rick