Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Clay
Threadersteller
Dabei seit: 04.12.2006
Ort: München
Alter: 37
Geschlecht:
|
Verfasst Mo 03.03.2008 17:07
Titel WYSIWYG Editor in Flash |
|
|
Hallo zusammen,
ich soll einen reduzierten WYSIWYG Editor in Flash basteln. Schrifart, Bold, Italic, Kursiv, Hyperlink, mehr nicht.
String wird dann rausgeschickt und von aspx + csharp weiterverbaeitet.
So, jetzt fehlt mir leider der Ansatzpunkt.
Wie kann ich auslesen welcher Textteil markiert wurde? Ist es die richtige rangehensweiße einen string zu spliten um z.b.: aus meinstring, meinsubstring zu extrahieren, diesen dann in <b>meinsubstring</b> umzuwandeln und am ende wieder in meinstring zu dingsen?
hat flex vllt so etwas intigriert?
Vielen Dank schonmal - ihr seid die besten
Zuletzt bearbeitet von Clay am Mo 03.03.2008 17:07, insgesamt 1-mal bearbeitet
|
|
|
|
|
therapiekind
Dabei seit: 14.03.2006
Ort: In deinem Kopf
Alter: -
Geschlecht: -
|
Verfasst Di 04.03.2008 00:22
Titel
|
|
|
Hilfe bemühen: Für AS 2.0 "Selection" und "replaceSel". AS 3.0 hat, soweit ich weiß, identische Methoden in die TextField-Klasse verlegt.
Also angenommen, man geht es so an, wie du es dir vorstellst (ich würd's auch so machen).
Ich habe mal irgendwo 'nen superguten Word-ähnlichen Editor für Flash gesehen, für lau gab's den auch noch. Frag mich nur nicht, wo.
Zuletzt bearbeitet von therapiekind am Di 04.03.2008 00:23, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 04.03.2008 07:26
Titel
|
|
|
@Mein Lieblingsbayer: Schau im Adobe Exchange mal nach "Rich Text" Komponenten. Mit denen kriegst Du den Text schonmal bearbeitet. Und speichern würd ich das einfach als HTML-Text. Geht am unkompliziertesten. Ich hab auf die Weise für die alte Firma 3 WYSIWYG´s gemacht und hat gut geklappt
|
|
|
|
|
Clay
Threadersteller
Dabei seit: 04.12.2006
Ort: München
Alter: 37
Geschlecht:
|
Verfasst Di 04.03.2008 11:03
Titel
|
|
|
Vielen Dank für die schnellen Antworten ihr beiden!
Stimmt, an Adobe Exchange hab ich garnicht gedacht. is auch sehr brauchbar was sich da finden lässt.
Zum selbermachen ist replaceSel n guter tip
Merci eich,
LG, Clay
|
|
|
|
|
Clay
Threadersteller
Dabei seit: 04.12.2006
Ort: München
Alter: 37
Geschlecht:
|
Verfasst Mi 05.03.2008 16:31
Titel
|
|
|
Hallo zusammen,
habe es jetzt geschafft die Grundlegenden Buttons zu erstellen und die auch zum Funktionieren zu bringen.
Bei druck auf den Button "b" wird jetzt der "Beispieltext" zu "<b>Beispieltext</b>"
Sodala.
Jetzt habe ich das Problem das ich auch Tags verschachteln kann: "<b>Beispieltext</b>" kann auch zu "<b>Bei<b>spiel</b>text</b>" gemacht werden.
Das ist natürlich, wie soll ich sagen, unvorteilhaft
Allerdings fehlt mir leider komplett der Ansatz wie man das problem lösen kann -___-
AS:
Code: |
this.createTextField("wysiwygTextField", this.getNextHighestDepth(), 10, 40, 300, 200);
wysiwygTextField.multiline = true;
wysiwygTextField.wordWrap = true;
wysiwygTextField.border = true;
wysiwygTextField.type = "input";
wysiwygTextField.text = "";
var myformat:TextFormat = new TextFormat();
myformat.font = "Arial";
wysiwygTextField.setTextFormat(myformat);
var Text:String = wysiwygTextField.text;
var SelectionArray:Array = new Array();
var TextWithBoldTags:Array = new Array();
TextWithBoldTags[0] = "Test"
wysiwygTextField.onSetFocus = function(changedField:TextField) {
CheckSelection = setInterval(getSelection, 500);
};
wysiwygTextField.onKillFocus = function(changedField:TextField) {
clearInterval(CheckSelection);
};
wysiwygTextField.onChanged = function(textfield_txt:TextField) {
UpdateText();
};
var ButtonLoader:MovieClipLoader = new MovieClipLoader();
//Button BOLD
var ButtonBold:MovieClip = this.createEmptyMovieClip("ButtonBold", 0);
var ButtonBoldIMG:MovieClip = ButtonBold.createEmptyMovieClip("ButtonBoldIMG", 100);
ButtonLoader.loadClip("buttons/buttonBold.swf", ButtonBoldIMG);
ButtonBoldIMG._x = 10
ButtonBoldIMG._y = 5
ButtonBold.onPress = function():Void {
setTag("<b>","</b>")
}
//Button ITALIC
var ButtonItalic:MovieClip = this.createEmptyMovieClip("ButtonItalic", 10);
var ButtonItalicIMG:MovieClip = ButtonItalic.createEmptyMovieClip("ButtonItalicIMG", 110);
ButtonLoader.loadClip("buttons/buttonItalic.swf", ButtonItalicIMG);
ButtonItalicIMG._x = 50
ButtonItalicIMG._y = 5
ButtonItalic.onPress = function():Void {
setTag("<i>","</i>")
}
//Button UNDERLINE
var ButtonUnderline:MovieClip = this.createEmptyMovieClip("ButtonUnderline", 20);
var ButtonUnderlineIMG:MovieClip = ButtonUnderline.createEmptyMovieClip("ButtonUnderlineIMG", 120);
ButtonLoader.loadClip("buttons/buttonUnderline.swf", ButtonUnderlineIMG);
ButtonUnderlineIMG._x = 90
ButtonUnderlineIMG._y = 5
ButtonUnderline.onPress = function():Void {
setTag("<u>","</u>")
}
function getSelection():Void {
var selectionStart:Number = Selection.getBeginIndex();
var selectionEnd:Number = Selection.getEndIndex();
var selectionText:String = wysiwygTextField.text.substring(selectionStart, selectionEnd);
var popSelectionArray:Object = SelectionArray.pop();
var popSelectionArray:Object = SelectionArray.pop();
var popSelectionArray:Object = SelectionArray.pop();
var pushSelectionArray:Number = SelectionArray.push(selectionStart);
var pushSelectionArray:Number = SelectionArray.push(selectionEnd);
var pushSelectionArray:Number = SelectionArray.push(selectionText);
}
function setTag(a, b) {
var tagOpen:String = a;
var tagClose:String = b;
var selectionStart = SelectionArray[0];
var selectionEnd = SelectionArray[1];
var selectionText = SelectionArray[2].toString();
var selectionToBold:String = tagOpen+wysiwygTextField.text.substring(selectionStart, selectionEnd)+tagClose;
var isStringAllreadyBoldStart = selectionText.slice(0, 3);
var selectionTextTagClosePosition = selectionText.length-3;
var isStringAllreadyBoldEnd = selectionText.slice(selectionTextTagClosePosition, selectionText.length);
if (SelectionArray[0] == undefined || SelectionArray[2] == "") {
//alert here
} else if (isStringAllreadyBoldStart == tagOpen || isStringAllreadyBoldEnd == tagClose) {
var selectionToUnBold:String = wysiwygTextField.text.substring(selectionStart+3, selectionEnd-4);
wysiwygTextField.replaceText(selectionStart, selectionEnd, selectionToUnBold);
UpdateText();
} else {
var selectionToBold:String = tagOpen+wysiwygTextField.text.substring(selectionStart, selectionEnd)+tagClose;
wysiwygTextField.replaceText(selectionStart, selectionEnd, selectionToBold);
UpdateText();
}
}
function UpdateText(selectionToBold) {
var Text:String = wysiwygTextField.text;
wysiwygTextHTMLField.text = Text;
}
|
Hat irgendwer eine Idee?
Vielen Dank für die Hilfe
LG, Clay
Zuletzt bearbeitet von Clay am Mi 05.03.2008 16:33, insgesamt 2-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mi 05.03.2008 18:29
Titel
|
|
|
Was genau is dein Problem eigentlich jetzt grad ??
|
|
|
|
|
Clay
Threadersteller
Dabei seit: 04.12.2006
Ort: München
Alter: 37
Geschlecht:
|
Verfasst Mi 05.03.2008 18:55
Titel
|
|
|
FlamingArt hat geschrieben: | Was genau is dein Problem eigentlich jetzt grad ?? |
Naja ich möchte das ich wenn ich ein "<b>text</b>" hab, das ich nicht das: "<b>t<b>ex<b/>t</b>" daraus machen kann.
Also ich möchte kein bold tag in einem bereitsbestehenden bold tag erlauben.
Zuletzt bearbeitet von Clay am Mi 05.03.2008 18:59, insgesamt 2-mal bearbeitet
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Mi 05.03.2008 19:01
Titel
|
|
|
Frag’ die Tags mit ’ner Stringfunktion ab.
Zuletzt bearbeitet von l'Audiophile am Mi 05.03.2008 19:01, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
WYSIWYG Editor
WYSIWYG Editor
einzeiliger WYSIWYG-Editor
MediaWiki 1.6 + WYSIWYG-Editor
Online Wysiwyg-Editor
WYSIWYG-Editor für absolute Anfänger
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|