Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-03-2005, 17:18   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 29
Textarea - Markierte Position auslesen / Ersetzen

Guten Abend,

wie kann ich in einem Textarea die Position eines markierten Teils auslesen.
Ich möchte in einem Textarea einen markierten Textteil ersetzen lassen.

Vielen Dank
Armin
intervation ist offline   Mit Zitat antworten
Alt 10-03-2005, 18:25   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Selection.getEndIndex()
und
Selection.getBeginIndex()
und
Selection.getCaretIndex()

mal hier danach suchen (rechts oben bei "suchen") bzw. im ActionScript-Handbuch.pdf
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 10-03-2005, 18:53   #3 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
InstanceName_0 ist dein Textfeld
PHP-Code:
this.onMouseUp = function(){
    
deinText "www" //<<< Text mit dem du etwas ersetzen willst
    
if (InstanceName_0 eq Selection.getFocus()) { 
        
st Selection.getBeginIndex(); // Anfang deine markierung
        
end Selection.getEndIndex(); //Ende deine markierung
        
textDaVor InstanceName_0.text.substring(0st); // text vor deine markierund merken
        
textDaNach InstanceName_0.text.substring(end); // text hinter deine markierung merken
        
neueText textDaVor deinText textDaNach// zusammenbinden
        
trace(neueText)
    }

__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 10-03-2005, 18:56   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 29
Hallo,

danke für die schnelle Hilfe.

Steht das ActionScript-Handbuch.pdf irgendwo zum Download?

Armin
intervation ist offline   Mit Zitat antworten
Alt 10-03-2005, 19:51   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
schau mal auf deiner CD nach.
gedruckte handbücher gibts wohl nicht mehr, aber die doku wird selbstverständlich mit dem programm mit ausgeliefert.

und mal im flash das hilfe-fenster öffnen. ist doch ganz übersichtlich gemacht. kann man sogar um eigene beiträge erweitern - das aber mal für später ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (10-03-2005 um 19:53 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 11-03-2005, 10:20   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 29
Ich habe nun mit eurer Unterstützung mal was zusammengebastelt.

Allerdings habe ich ein Problem:
Das mit dem onKeyUp funktioniert nicht, er geht nicht in die function rein. Es erfolgt keine Ausgabe.

Code:
var start:Number = -1;
var ende:Number = -1;


fett.onRelease = function() {
	trace(this._name);
	if (start != -1) {
		textDaVor = textarea.text.substring(0, start);
		textDrinn = textarea.text.substring(start, ende);
		textDaNach = textarea.text.substring(ende); 
		textarea.text = textDaVor + "[ b]"+ textDrinn + "[ /b]"+ textDaNach;
		start = -1;
		ende = -1;
	}
}

textarea.onMouseUp = function() {
	if (this.hitTest(_root._xmouse, _root._ymouse)) {
		start = Selection.getBeginIndex(); 
		ende = Selection.getEndIndex();
	}
}

textarea.onKeyUp = function() {
	trace("Z");
	if (this.hitTest(_root._xmouse, _root._ymouse)) {
		start = Selection.getBeginIndex(); 
		ende = Selection.getEndIndex();
	}
}
Mir ist klar, das bestimmt viel an den Code verbessert werden kann. Ich mache gerede die ersten Schritte mit Flash und muss mich noch durch die ganzen Befehle wühlen.
Armin
intervation ist offline   Mit Zitat antworten
Alt 11-03-2005, 11:57   #7 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Wenn du meine script besser guckst dann siehst du dass ich onMouseUp nich auf dass Textfeld gemacht habe sondern global...
also:
dein script:
PHP-Code:
textarea.onMouseUp = function() { // warum textarea.onMouseUp
    
if (this.hitTest(_root._xmouse_root._ymouse)) {
        
start Selection.getBeginIndex(); 
        
ende Selection.getEndIndex();
    }

PHP-Code:
this.onMouseUp = function() { // _root onOnMouseUp
    
if (textarea eq Selection.getFocus()) { // und hier guckst du ob  Focus von dein feld kommt
        
start Selection.getBeginIndex(); 
        
ende Selection.getEndIndex();
    }

__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 11-03-2005, 12:05   #8 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Wink

für den fall dass du Flash mx 2004 hast,
such auf deine festplatte hier:
Macromedia\Flash MX 2004\Samples\HelpExamples\textfields
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 11-03-2005, 13:10   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 29
Hallo xbass,

das mit dem textarea.onMouseUp = function() läuft ja ohne Probleme. Nur das mit textarea.onKeyUp = function() funktioniert leider nicht.

Bei dem Tipp tritt genau das auch auf, was ich vermeiden möchte.
Es soll immer die aktuelle Position des letzten losslassen einer Taste im Textarea gespeichert werden.
Zur Zeit wird immer die aktuelle Position gemerkt wo der letzte Mausklick erfolgte.

Armin
intervation ist offline   Mit Zitat antworten
Alt 11-03-2005, 13:23   #10 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Ach soooooo...
dann so:
PHP-Code:
bestimmterListener = new Object();
bestimmterListener.onKeyUp = function () { 
    if (
textarea eq Selection.getFocus()) { 
        if(
Selection.getEndIndex() > 0) {
            
start Selection.getBeginIndex(); 
            
ende Selection.getEndIndex();
            
trace(start)
            
trace(ende)
        }
    }
};
Key.addListener(bestimmterListener); 
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 11-03-2005, 14:19   #11 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 29
Cool

@xbass

Danke für deine Hilfe.
Ich habe das nun gelöst.
Code:
bestimmterListener = new Object();
bestimmterListener.onKeyUp = function () {
	if (Selection.getFocus() eq '_level0.anwendung.formular1.textarea.label') {
		if(Selection.getEndIndex() > 0) {
            start = Selection.getBeginIndex();
            ende = Selection.getEndIndex();
          }
    }
};
Key.addListener(bestimmterListener);
Zwei Fragen, damit ich das auch verstehe.

Warum geht es nicht mit textarea.onKeyUp = function(), da ja textarea.onMouseUp = function() funktioniert.

Warum geht if (textarea eq Selection.getFocus()) { nicht, sondern die Variante oben.

Ich wäre dankbar, wenn mir eine die Erleuchtung bringt

Ich bin zwar recht gut in PHP/MySQL, aber Flash ist Neuland.

Armin
intervation ist offline   Mit Zitat antworten
Alt 11-03-2005, 14:33   #12 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
Dass hier func. (angenomen textarea befindet sich wo deine script ist)
PHP-Code:
if (textarea eq Selection.getFocus()) { 
Bei dir ist dass nich der fall:
PHP-Code:
if (Selection.getFocus() eq '_level0.anwendung.formular1.textarea.label') { 
oder habe ich etwas verpasst?
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass 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 11:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele