Skift af fontstørrelse i dynamisk tekst
Hej, jeg har lavet et tekstfelt hvor man selv kan skrive tekst og gemme det. Jeg er nået så langt at jeg kan gemme det, og den del fungere ok, men jeg vil jo også gerne kunne formatere tekten, med Bold, italic etc. alt dette virker også, så det sidste jeg mangler er at kunne ændre skriftstørrelsen, jeg synes jeg har prøvet alt uden held, jeg håber der er nogen der kan hjælpe...Min kode så således ud:
import util.Proxy;
var focusFixer:Object = new Object();
var selectionStart:Number;
var selectionEnd:Number;
var viewMode:String = "text";
var isTextView:Boolean = true;
var textFormat:TextFormat = new TextFormat("verdana", 11, 0x444444);
var txt:String = "Det jeg søger er egentlig bare en måde at lave en knap, der indsætter noget code på hver sin side af den markede tekst.";
function doCommand(command:String, param):Void
{
if (selectionStart != selectionEnd) {
textFormat = plain_txt.getTextFormat(selectionStart, selectionEnd);
switch (command) {
case "bold" :
textFormat.bold = !textFormat.bold;
break;
case "italic" :
textFormat.italic = !textFormat.italic;
break;
case "underline" :
textFormat.underline = !textFormat.underline;
break;
case "justify" :
if (arguments.length<2) {
throw new Error("Requires two arguments");
}
textFormat.align = param;
break;
case "indent" :
if (arguments.length<2) {
throw new Error("Requires two arguments");
}
textFormat.indent += param;
break;
case "bullets" :
textFormat.bullet = !textFormat.bullet;
break;
}
plain_txt.setTextFormat(selectionStart,selectionEnd,textFormat);
}
}
//skrift mellem text og html view
function switchViewMode():Void
{
isTextView = !isTextView;
if (isTextView) {
if (html_txt.text != plain_txt.htmlText) {
plain_txt.htmlText = html_txt.htmlText;
}
html_txt.text = "";
plain_txt._visible = false;
}
else {
html_txt.text = plain_txt.htmlText;
html_txt._visible = true;
}
plain_txt._visible = isTextView;
html_txt._visible = !isTextView;
}
// focusFixer bliver brugt til at erstatte brugerens selction, når brugeren klikker uden for tekstfeltet
function setFocusHandler():Void
{
//hvis tekstfeltet har fokus
if (Selection.getFocus() == targetPath(this)+".plain_txt") {
// Gem brugerens selection
this.onEnterFrame = function()
{
selectionStart = Selection.getBeginIndex();
selectionEnd = Selection.getEndIndex();
};
}
else {
//hvis tekstfeltet ikke har fokus, men brugeren lavede en selection, opretter vi den igen her
if (selectionStart != selectionEnd) {
Selection.setSelection(selectionStart,selectionEnd);
}
delete this.onEnterFrame;
}
}
bold_mc.onRelease = Proxy.create(this, doCommand, "bold");
italic_mc.onRelease = Proxy.create(this, doCommand, "italic");
underline_mc.onRelease = Proxy.create(this, doCommand, "underline");
left_mc.onRelease = Proxy.create(this, doCommand, "justify", "left");
center_mc.onRelease = Proxy.create(this, doCommand, "justify", "center");
right_mc.onRelease = Proxy.create(this, doCommand, "justify", "right");
outdent_mc.onRelease = Proxy.create(this, doCommand, "indent", -20);
indent_mc.onRelease = Proxy.create(this, doCommand, "indent", 20);
bullets_mc.onRelease = Proxy.create(this, doCommand, "bullets");
html_mc.onRelease = Proxy.create(this, switchViewMode);
focusFixer.onSetFocus = Proxy.create(this, setFocusHandler);
Selection.addListener(focusFixer);
plain_txt.text = txt;
html_txt.text = plain_txt.text;
plain_txt.setTextFormat(textFormat);
html_txt._visible = false;