Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2006, 17:08   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Cursorposition im Eingabefeld

Kann man die Cursorposition im Eigabefeld bestimmen?

Der Hintergrund: Wenn ein Button gedrückt wird, soll in einem Eingabefeld an der Cursorposition ein html-Tag eingefügt werden. Ich habe es mit TextField.replaceSel versucht. Die Methode fügt Text immer an Position 1 ein (möglicherweise geht die Cursorposition im Textfeld verloren sobald ich auf den Button klicke?) und fügt auch dann html-Tags nur ausgeschrieben ein, auch wenn das Textfeld als html-Textfeld definiert ist.

Vorschläge wie man das lösen könnte?

Geändert von pinoccio64 (12-08-2006 um 17:10 Uhr)
pinoccio64 ist offline   Mit Zitat antworten
Alt 12-08-2006, 17:13   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
schau dir mal in der flash-hilfe die befehle an:

getBeginIndex
getEndIndex
und
setSelection

erstere immer mit onChange retten!

http://www.seibsprogrammladen.de/fra...ispiele/flash6
-> Suchtext
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-08-2006 um 17:15 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 15-08-2006, 10:05   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Soweit sehr gut & schonmal vielen Dank!

Ich bestimme nun mit selection.getBeginIndex die Cursorposition, zerlege den Text und füge an dieser Stelle den neuen Text ein. Funktioniert sehr gut mit einzelnen Wörtern, jedoch nicht mit html-Tags. Hierfür nehme ich den .htmlText zum zerlegen, der allerdings nicht mit der Cursorposition von selection.getBeginIndex übereinstimmt. Die bezieht sich offenbar auf .text. Kann ich die Selection dazu bringen, sich auf den .htmlText zu beziehen oder ein html-tag, in den "normalen" .text einfügen, so dass es auch als html-tag interpretiert wird?

Oder gibt es eine andere Lösung?
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 11:10   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..jedoch nicht mit html-Tags.."
flash ist kein browser-ersatz ;-)

arbeite mit TextFormat und StyleSheet
diese befehle sind dafür da, um den text in flash zu gestalten.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 15-08-2006, 12:00   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von hgseib
"..jedoch nicht mit html-Tags.."
flash ist kein browser-ersatz ;-)

arbeite mit TextFormat und StyleSheet
diese befehle sind dafür da, um den text in flash zu gestalten.
Danke. Aber in diesem Fall brauche ich nunmal html-Tags, die auf Knopfdruck in ein Eingabefeld eingefügt werden. Ist halt so, trotz aller Philosophie.

Ich hab in einem früheren Thread einen Vorschlag gefunden, den markierten Text zwischenzuspeichern und ihn dann z.B. mit .split.join zu ersetzen. Funktioniert leider nur dann, wenn der markierte Text nur einmal vorkommt, sonst werden alle entsprechenden Textpassagen ersetzt. Ich habe versucht, dem markierten Text unsichtbare Ascii-Zeichen hinzuzufügen, um ihn von gleichlautenden Passagen unterscheiden zu lassen. Leider werden für diese Zeichen unschöne Platzhalter im Textfeld angezeigt.

Hat noch jemand eine Idee?

Geändert von pinoccio64 (15-08-2006 um 12:02 Uhr)
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 12:42   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
das ist dann aber schon ziemlich rumgemurkst!
man kann sich von dem selectierten text das format ausgeben lassen, die entsprechenden werte ändern/ergänzen und das format wieder dem text zuweissen. und erzähle mir nicht, dass das nicht geht.

aber da die leute unbelehrbar sind ;-)
- rette den selectierten text
- ersetze ihn komplett durch #####
- jetzt den htmText auslesen
- ##### spitten, das gibt es bestimmt nur einmal
- den text und dein html einsetzen.
- und wieder als htmlText zuweissen
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 15-08-2006, 13:45   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von hgseib
das ist dann aber schon ziemlich rumgemurkst!
man kann sich von dem selectierten text das format ausgeben lassen, die entsprechenden werte ändern/ergänzen und das format wieder dem text zuweissen. und erzähle mir nicht, dass das nicht geht.
Meine Frage war doch, ob und wie das geht. Untenstehende Idee fand ich genial. Bis zu einem Punkt...

Zitat:
Zitat von hgseib
- rette den selectierten text
- ersetze ihn komplett durch #####
Sobald ich im Textfeld den .text beschreibe, sind alle bisherigen html-Tags verloren.

Geändert von pinoccio64 (15-08-2006 um 13:52 Uhr)
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 13:56   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
die tags bekommst du via .htmlText ausgelesen und darüber auch wieder reinschreiben.

kann natürlich sein, das deine handgemachte änderung nicht geht. wenn z.b. die auswahl mitten in einem tag anfängt und mitten in einem anderen tag aufhört...

schau dir doch bitte die geschichte mit den formaten an. das ist der richtige weg!
such mal auf deiner festplatte nach: textfieldsA.fla
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (15-08-2006 um 14:00 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 15-08-2006, 14:14   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von hgseib
die tags bekommst du via .htmlText ausgelesen und darüber auch wieder reinschreiben.
Nein, die kann ich auch über .htmlText nicht mehr einlesen, nachdem ich vorher in .text hineingeschrieben habe. Und dass muss ich tun, um die Markierung durch "#####" zu ersetzen. In diesem Moment sind die bisherigen Tags weg.

Oder habe ich dich völlig falsch verstanden?

Zitat:
Zitat von hgseib
such mal auf deiner festplatte nach: textfieldsA.fla
Werde ich auch gleich tun. Aber bitte teile mir noch mit, ob ich Dich bei der obigen Lösung richtig verstanden habe. Schreibe ich den durch "#####" veränderten Text nicht zurück in .text, kann ich mit ihm auch nicht mit htmlText arbeiten. Schreibe ich ihn zurück, sind die html-Tags weg.
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 14:39   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Ok, ich habs. Nachdem der Button geklickt wurde, muss ich als erstes die Selection wieder so herstellen, wie sie vorher war. Dann kann ich die Selection für sich verändern, ohne dass ich .text beanspruche, der mir die Tags kaputt macht. Und dann kann ich nach dem Spezialtext in .htmlText suchen lassen, und den .html Tag einfügen.

Wird wohl ungefähr das gewesen sein, was Du meintest. Vielen Dank.
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 15:44   #11 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
oben bei #2 hatte ich dir einen link aufgeschrieben. dort hättest du dir beispiel-fla's laden können ...
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 15-08-2006, 16:43   #12 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 60
Zitat:
Zitat von hgseib
oben bei #2 hatte ich dir einen link aufgeschrieben. dort hättest du dir beispiel-fla's laden können ...
Nichts gegen ein bisschen Werbung. Aber zu der Fragestellung hast Du dort keine beispiel-flas.
pinoccio64 ist offline   Mit Zitat antworten
Alt 15-08-2006, 17:34   #13 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
nein, DEIN fertiges programm ist da nicht dabei; das muss ich zugeben.

-> Suchtext
ein ZIP mit suchtext.swf und

replaceSel.swf
da wo 'hallo' steht etwas eingeben. oben etwas text selectieren, auf den button klicken. der selectieren text wird ausgetauscht. formatierungen bleiben erhalten.
das ist natürlich ganz was anderes, als dass, was du machen willst ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (15-08-2006 um 17:35 Uhr)
hgseib 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 03:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele