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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | 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; |