Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-09-2003, 23:44   #1 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
MouseListener

Ich beziehe mich hier auf meine letzten Threads:
inputtext + handler
Zugriff auf Elemente in einem mc

Ich wollte jetzt noch dem name_txt textfeld ein Mausevent zuweisen.

ActionScript:
  1. name_txt.onMouseDown = function () {
  2.     trace("MouseButton pressed");
  3. }
  4.  
  5. Mouse.addListener(name_txt);

Was jetzt natürlich passiert ist, dass das Event immer aufgerufen wird, wenn ich den Mousebutton drücke.

Wie mache ich das jetzt, dass das Mausevent nur auf das angeklickte textfeld name_txt beschränkt ist.
MadLock ist offline   Mit Zitat antworten
Alt 05-09-2003, 23:55   #2 (permalink)
Freelancer
 
Benutzerbild von komashooter
 
Registriert seit: Oct 2001
Ort: Germany - Berlin
Beiträge: 1.777
du kannst das textfeld auch in ein Movieclip machen

Beispiel

ActionScript:
  1. mc.onRollOver = function() {
  2.     status =true;
  3.     mc.name_txt.onMouseDown = function() {
  4.         if(status==true){
  5.         trace("MouseButton pressed");
  6.         }
  7.     };
  8. };
  9. mc.onRollOut = function() {
  10. status=false;
  11. }
  12. Mouse.addListener(mc.name_txt);


hmm warum wird status blau im flash ActionScript Editor ??

ist status eigentlich ein anderer status ?!!

Geändert von komashooter (06-09-2003 um 00:03 Uhr)
komashooter ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:03   #3 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Ist das so, wie Du beschrieben hast, die gängige Lösung oder gibt es noch einen anderen Weg?
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:09   #4 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
Wie meinst Du nur auf das TF beschränkt?

Ich mein du wirst ja im onMouseDown irgendwas mit "this", also dem TF machen wollen - dann wärs ja nur auf das TF beschränkt...

oder willst Du das das nur passiert, wenn das TF Eingabefocus besitzt?

Dann so:

ActionScript:
  1. name_txt.onMouseDown = function () {
  2.         trace("MouseButton pressed");
  3. }
  4.  
  5. name_txt.onSetFocus = function()
  6. {
  7.  Mouse.addListener(this);
  8. }
  9. name_txt.onKillFocus = function()
  10. {
  11.  Mouse.removeListener(this);
  12. }
__________________
jeden Tag frisch
beachmeat ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:11   #5 (permalink)
Freelancer
 
Benutzerbild von komashooter
 
Registriert seit: Oct 2001
Ort: Germany - Berlin
Beiträge: 1.777
@ MadLock

natürlicht nicht !


hier die "Funktion" Version mit "setInterval"

ActionScript:
  1. listener = function () {
  2.     if (mc.hitTest(_xmouse, _ymouse, true)) {
  3.         status = true;
  4.         //trace("hit");
  5.     } else {
  6.         status = false;
  7.     }
  8.     mc.name_txt.onMouseDown = function() {
  9.         if (status == true) {
  10.             trace("MouseButton pressed");
  11.         }
  12.     };
  13.     Mouse.addListener(mc.name_txt);
  14. };
  15. setInterval(listener,1)

Geändert von komashooter (06-09-2003 um 00:14 Uhr)
komashooter ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:16   #6 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
du brauchst kein MouseDown dafür
ActionScript:
  1. _txt.onSetFocus=function(oldFocus) {
  2.     trace(this +" geklick");
  3. }
SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:26   #7 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
Wohl wahr, saban - meins würde nur mit onMouseUp Sinn machen...z.B. wenn man die Selection eines TF merken möchte...war ungetestet
__________________
jeden Tag frisch
beachmeat ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:27   #8 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Ich will noch mal erklären was ich vor habe:

Was ich gerade mache ist ein Client für ein Supportcenter. Wenn ein Anruf reinkommt, wird ein mc dynamsich erstellt. Ungefähr so:

[name des Kunden] [hier wird der Text eingegeben]

^habe ich in ein mc gepackt. Wenn jetzt der Supportmensch auf den Namen des Kunden mit der Maus klickt, dann werden seine Daten angezeigt.

Jetzt will ich nur noch in dem mc für [name des Kunden] einen Handler installieren, der die Routine aufruft, die die Daten holt. Als ich den Handler so eingebunden habe, wie oben beschrieben, ist er jedoch auch aufgerufen worden, wenn ich .z.B. auf einen Button gedrückt habe. Ich wollte jetzt den Handler nur auf [name des Kunden] beschränken. Und [name des kunden] ist kein Eingabefeld sondern ein Textfeld.
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:33   #9 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
Dann mach mit asfunction im html text des [name] ein a href, welche eine Funktion aufruft..such nach asfunction
__________________
jeden Tag frisch

Geändert von beachmeat (06-09-2003 um 00:34 Uhr)
beachmeat ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:40   #10 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
So wie netTrek es geschrieben hat ist es genau dass, was ich brauche.

Hat ja wieder super geklappt.

Ich wollte noch erwähnen, dass das hier ein absolut spitzenmässiges Forum ist.

Danke.
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 00:48   #11 (permalink)
Freelancer
 
Benutzerbild von komashooter
 
Registriert seit: Oct 2001
Ort: Germany - Berlin
Beiträge: 1.777
Zitat:
Geschrieben von beachmeat
Wohl wahr, saban - meins würde nur mit onMouseUp Sinn machen...z.B. wenn man die Selection eines TF merken möchte...war ungetestet

stimmt nicht der KillFocus kommt auch schon bei press


Beispiel

ActionScript:
  1. mc.name_txt.onSetFocus = function(oldFocus) {
  2.     trace(oldFocus+" = oldFocus");
  3.     trace(this+" geklick");
  4.     trace(Selection.getFocus());
  5. };
  6. Mouse.addListener(mc.name_txt);
  7. mc.name_txt.onKillFocus = function() {
  8.     Mouse.removeListener(mc.name_txt);
  9.     trace("killed");
  10. };
  11. _root.onEnterFrame = function() {
  12.     trace(Selection.getFocus());
  13.     oldFocus = Selection.getFocus();
  14. };
komashooter ist offline   Mit Zitat antworten
Alt 06-09-2003, 01:00   #12 (permalink)
Freelancer
 
Benutzerbild von komashooter
 
Registriert seit: Oct 2001
Ort: Germany - Berlin
Beiträge: 1.777
Question

Zitat:
Geschrieben von netTrek
du brauchst kein MouseDown dafür
ActionScript:
  1. _txt.onSetFocus=function(oldFocus) {
  2.     trace(this +" geklick");
  3. }
SABAN

warum ist ist oldFocus und oldFocus1 nicht gleich ?


Beispiel

ActionScript:
  1. _root.onEnterFrame = function() {
  2.     trace(Selection.getFocus());
  3.     oldFocus1 = Selection.getFocus();
  4. };
  5. mc.name_txt.onSetFocus = function(oldFocus) {
  6.     trace(oldFocus+" = oldFocus");
  7.     trace(_root.oldFocus1+" = oldFocus1");
  8.     if(oldFocus === _root.oldFocus1){
  9.         trace("oldFocus ist nicht true");
  10.         }
  11.     trace(this+" geklick");
  12.     trace(Selection.getFocus());
  13. };
  14. Mouse.addListener(mc.name_txt);
  15. mc.name_txt.onKillFocus = function() {
  16.     Mouse.removeListener(mc.name_txt);
  17.     trace("killed");
  18. };

ActionScript:
  1. _root.onEnterFrame = function() {
  2.     trace(Selection.getFocus());
  3.     oldFocus1 = Selection.getFocus();
  4. };
  5. mc.name_txt.onSetFocus = function(oldFocus) {
  6.     trace(oldFocus+" = oldFocus");
  7.     trace(_root.oldFocus1+" = oldFocus1");
  8.     a=oldFocus;
  9.     b=_root.oldFocus1;
  10.     if(oldFocus == _root.oldFocus1){
  11.         trace("oldFocus ist nicht true");
  12.         }
  13.     if(a == b){
  14.         trace("oldFocus ist nicht true Nr.2");
  15.         }
  16.     trace(a+" "+b);
  17.     trace(this+" geklick");
  18.     trace(Selection.getFocus());
  19. };
  20. Mouse.addListener(mc.name_txt);
  21. mc.name_txt.onKillFocus = function() {
  22.     Mouse.removeListener(mc.name_txt);
  23.     trace("killed");
  24. };






Ausgabe:

Code:
_level0.instance2
_level0.instance2 = oldFocus
_level0.instance2 = oldFocus1
_level0.instance2 _level0.instance2
_level0.mc.name_txt geklick
_level0.mc.name_txt
_level0.mc.name_txt
_level0.mc.name_txt

des funktioniert nur wenn der Focus null war

Code:
null
null
null = oldFocus
null = oldFocus1
oldFocus ist nicht true
oldFocus ist nicht true Nr.2
null null
_level0.mc.name_txt geklick
_level0.mc.name_txt
_level0.mc.name_txt

da stimmt doch was nicht

Geändert von komashooter (06-09-2003 um 01:17 Uhr)
komashooter ist offline   Mit Zitat antworten
Alt 06-09-2003, 20:03   #13 (permalink)
Freelancer
 
Benutzerbild von komashooter
 
Registriert seit: Oct 2001
Ort: Germany - Berlin
Beiträge: 1.777
hat vielleicht jemand eine idee warum Flash mit oldfocus und oldFocus1 Probleme macht ?
komashooter 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 23:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele