Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-02-2004, 04:33   #1 (permalink)
anyway
Gast
 
Beiträge: n/a
Question stringauswahl im formatierten fließtext formatieren?

ich raff nix..

ActionScript:
  1. $s = String.prototype;
  2. $s.hl = function(l) {
  3.     return "<a href='"+l+"'><font color='#FF3400'><u>"+this+"</u></font></a>";
  4. };
  5. this.onMouseDown = function() {
  6.         // 'txt' sei ein Eingabetextfeld
  7.     this.onMouseMove = function() {
  8. s = Selection.getBeginIndex();
  9.         e = Selection.getEndIndex();
  10. t1 = txt.text.substring(0,s);
  11. t2 = txt.text.substring(e,txt.text.length)
  12.         // t1 und t2 die textabschnitte, die
  13.         // den derzeit ausgewählten textabschnitt
  14.         // eingrenzen und möglicherweise schon
  15.         // mit allerlei textformat-tags
  16.         // eigentlich länger sind, als es mir
  17.         // die Länge des Strings verrät..
  18.         //
  19.         // any ideas?
  20.         //
  21.     };
  22.     this.onMouseUp = function() {
  23. delete this.onMouseMove;
  24.         abschnitt = txt.text.substring(s, e);
  25.         // dies hier (oder so ähnlich würd ich gerne machen)...:
  26.         //
  27.  txt.htmlText.splice(s, e-s, txt.text.substring(s, e).hl("about:blank"));
  28.         //
  29.         // ...funzt aber net..*g*
  30.         //
  31.         // wie kann ich den abschnitt formatieren,
  32.         // ohne das andere bereits getätigte
  33.         // formatierungen verloren gehen?
  34.     };
  35. };

..hoffe, da weis jemand watt...
...oder muss ich am ende den ganzen html-code mit irgendwelchen string-operationen filtern..oh, bitte nicht...

who helps me out..?
  Mit Zitat antworten
Alt 06-02-2004, 11:52   #2 (permalink)
anyway
Gast
 
Beiträge: n/a
....hilfe...ich weiß es wirklich nicht...beachmeat, bokel? scrawer?....Wo sind die as-heroes wenn man sie mal braucht?

(topp&sorry, wenn ich bei den as-heroes den einen oder anderen Namen vergessen habe)
  Mit Zitat antworten
Alt 06-02-2004, 12:09   #3 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
So... Ich hab's mal in dein Script integriert. Wobei die Lösung mit MouseMove... recht kreativ ist.
ActionScript:
  1. $s = String.prototype;
  2. $s.hl = function(l) {
  3.         return "<a href='"+l+"'><font color='#FF3400'><u>"+this+"</u></font></a>";
  4. };
  5. this.onMouseDown = function() {
  6.         // 'txt' sei ein Eingabetextfeld
  7.         this.onMouseMove = function() {
  8.                 this.s = Selection.getBeginIndex();
  9.                 this.e = Selection.getEndIndex();
  10.                 t1 = txt.text.substring(0,s);
  11.                 t2 = txt.text.substring(e,txt.text.length)
  12.                 // t1 und t2 die textabschnitte, die
  13.                 // den derzeit ausgewählten textabschnitt
  14.                 // eingrenzen und möglicherweise schon
  15.                 // mit allerlei textformat-tags
  16.                 // eigentlich länger sind, als es mir
  17.                 // die Länge des Strings verrät..
  18.                 //
  19.                 // any ideas?
  20.                 //
  21.         };
  22.         this.onMouseUp = function() {
  23.                 delete this.onMouseMove;
  24.                 abschnitt = txt.text.substring(s, e);
  25.                 // dies hier (oder so ähnlich würd ich gerne machen)...:
  26.                 //
  27.                 //txt.htmlText.splice(s, e-s, txt.text.substring(s, e).hl("about :blank"));
  28.                 var temp = new TextFormat ();
  29.                 temp.target = "_blank";
  30.                 temp.url = "http://www.google.de"; //myLink;
  31.                 temp.underline = true;
  32.                
  33.  
  34.                 txt.setTextFormat ( this.s , this.e , temp);
  35.  
  36.                 // ...funzt aber net..*g*
  37.                 //
  38.                 // wie kann ich den abschnitt formatieren,
  39.                 // ohne das andere bereits getätigte
  40.                 // formatierungen verloren gehen?
  41.         };
  42. };

Ich würde den Bereich mit Selection bei MouseUp mit reinpacken und den MouseMove weglassen. Aber so sollte es erstmal funktionieren und damit kommst du dann hoffentlich selbst weiter.

Edit: Ich habe nochmal geschaut und werde nicht so ganz schlau aus dem h1 -> return part. Willst du später einzelne Methoden a la css bauen?

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."

Geändert von r0b (06-02-2004 um 12:16 Uhr)
r0b ist offline   Mit Zitat antworten
Alt 06-02-2004, 15:34   #4 (permalink)
anyway
Gast
 
Beiträge: n/a
Hi r0b!

Vielen Dank erstmal - ich hatte wohl irgendwie zu umständlich gedacht und verdrängt, daß es sowas wie Textformat gibt..

Jo, eigentlich hatte ich vor, noch weitere Formatierungen, wie einen bold-schriftschnitt, Listenformatierung, farbe, right- und leftMargin als Methoden im String.prototype zu ergänzen...

Am einfachsten erschien mir das über das Einfügen von Tags im HTML-String des Textfelds.
  Mit Zitat antworten
Alt 06-02-2004, 18:00   #5 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Hm...
Dafür ist der Ansatz aber etwas seltsam. Jedenfalls wäre es denke ich besser erst die Auswahl (Selection) zu machen und erst dann zu entscheiden was damit gemacht wird.

Und da reicht dann der onMouseUp -> save Selection. Die Werte s und e + Pointer auf die Textbox würde ich dann irgendwo in _global zwischenspeichern, wo du sie dann mit dem "Ausführungspart" abholen kannst.

Dann kannst du auch verschiedene TF's zuweisen. Nach dem Schema H1, bold, whatever.
Das ganze wäre dann auch besser unter Textfield.prototype aufgehoben.

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."

Geändert von r0b (06-02-2004 um 18:03 Uhr)
r0b ist offline   Mit Zitat antworten
Alt 06-02-2004, 20:14   #6 (permalink)
anyway
Gast
 
Beiträge: n/a
Hi r0b.

..alles bereits geschehen - deine Methode funktioniert super - ich hatte ein wenig Sorge, daß unterschiedliche Fonts in der Formatierung Probleme bereiten könnten..Und..ja, ich hab den String.prototype schleunigst wieder eingestampft und alles in den TextField.prototype geschrieben ...

Ein bißchen Schade ist jetzt noch, daß ich keine Möglichkeit finde, eine Absatzformatierung in die gleiche Zeile mit einer anderen Absatzformatierung zu schreiben (wie z.B. bei Einrückungen, Spalten u.a.) wenn Du da noch ne Idee hättest wäre wirklich super..Ansonsten, danke erstmal!
  Mit Zitat antworten
Alt 06-02-2004, 20:27   #7 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Das verstehe ich jetzt nicht so ganz. Bereich markieren hast du ja. (_global: e + s + ptrTextbox für textbox).
Na und dann hast du verschiedene Methoden in denen du dein TextFormat variierst.

also in etwa so:

ActionScript:
  1. Textfield.prototype.setBold = function () {
  2.  
  3.  var temp = _global.ptrTextbox.getTextFormat(_global.s , _global.e);
  4.  temp.bold = true;
  5.  _global.ptrTextbox.setTextFormat (_global.s , _global.e , temp);
  6. }
  7.  
  8. Textfield.prototype.setUnderline = function () {
  9.  
  10.  var temp = _global.ptrTextbox.getTextFormat(_global.s , _global.e);
  11.  temp.underline = true;
  12.  _global.ptrTextbox.setTextFormat (_global.s , _global.e , temp);
  13. }
  14.  
  15. Textfield.prototype.setBullet = function () {
  16.  
  17.  var temp = _global.ptrTextbox.getTextFormat(_global.s , _global.e);
  18.  temp.bullet = true;
  19.  _global.ptrTextbox.setTextFormat (_global.s , _global.e , temp);
  20. }
  21.  
  22. // und so weiter...
  23.  
Wenn du also die Auswahl gemacht hast kannst du entweder per Script deine Änderung machen, oder du hast irgendwo einen Button wo "B", "U" oder "Pünktchen" draufsteht.
Durch das vorherige lesen hast du alle anderen "Formate" mit drin und es geht nichts verloren.

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."

Geändert von r0b (06-02-2004 um 20:38 Uhr)
r0b ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele