Button.click

WaZZkeSS

Erfahrenes Mitglied
Hallo allerseits,

ich habe das Problem das bei meinem Button das Ereignis erst nach dem 2. Klick ausgeführt wird.
Code:
on(release){
 outPutMSG = check();
 if (outPutMSG == false){
  ... }
 
 
 check = function(){
     ...
    return false;}
Beim Debuggen ist mir aufgefallen das er beim ersten mal auch reingeht aber nicht ganz abarbeitet.
Die funktion Check wird aufgerufen und danach wird die Funktio wieder verlassen.
Nach einem erneuten klick darauf wird dieser dann vollständig ausgeführt.

Kann mir jemand sagen was das sein kann. Wäre fü jede Hilfe sehr dankbar.


Lg WaZZkeSS

p.s: Sorry wegen den doppelten Beitrag wollte auf TAB 2x und dann weiterschreiben.
Und beim klick auf die Space-Taste wurde der Beitrag eingestellt. Also sorry nochmals.
 
Zuletzt bearbeitet von einem Moderator:
Hi,

bist du bitte so gut, den "Ändern"-Button in deinem zuerst erstellten Thema zu nutzen, um die Ergänzung darin vorznehmen, anstatt das Thema hier in doppelter und dreifacher Ausführung reinzustellen?

Vielen Dank!

[closed]

mfg Maik
 
Dazu müssen wir schon mindestens die ganzen Funktionen sehen, ohne diese Abkürzungen.

Gruß
jens
 
Zuletzt bearbeitet:
Hy,
glaub zwar nicht das der Code hilft aber,
... sicher, im grunde genommen soll die Eingabe geprüft
und an php gesendet werden
Code:
    outPutMSG = checkInput();    // Beim Debuggen wird die Zeile übersprungen und
    if (outPutMSG == false){        // erst hier wird die Function aufgerufen und gleich wieder abgebrochen
        loadVariables("mail.php4", "", "POST");
        textbox1.text = "";
        textbox2.text="";
        textbox3.text="";
        // weitere Textfelder welche geleert werden
    }
    
    checkInput = function(){     // Sobald die Function beim 1. Aufruft aufgerufen wurden werden keiner
// weiteren Zeilen abgearbeitet. Auch dort wo die Function (if (outPutMSG == false ...),
// warumauch immer von hier aus die Function aufgerufen wird,
// aufgerufen wurde wird nichts mehr gemacht.
        var chk:String = "";        
        if (textbox1.text == "") { chk += "Wert1"; }
        if (textbox3.text == "") { chk += ((chk == "") ? "Wert2" : ", Wert2"); }
        if (textbox3.text == "") { chk += ((chk == "") ? "Wert3" : ", Wert3"); }
        // Weitere Textfelder welche geprüft werden

        // Zum Schluss noch prüfen ob ein Wert vorhanden ist
        if (chk != ""){
            textbox0.text = chk; 
            return true; }
        else{ return false; }
    }

Danke und Lg WaZZkeSS
 
Was genau steht denn im textbox0 nach dem ersten Klicken, hast du dir schon einmal outPutMSG per trace ausgeben lassen (die Variable kann man übrigens auch weglassen, if(checkInput()) geht auch).

Steht das alles in der onRelease-Funktion? Eventuell werden dann die Textfelder aus dieser Release-Funktion nicht richtig adressiert (und ein this.textbox1.text gesucht, wenn _root.textbox1.text richtig wäre), prüf das mal nach (per Trace mit entsprechenden Testwerten).

Gruß
jens
 
Hallo Jens,

danke vorerst für deine Antwort.
Bzgl. der Variante "if(checkInput()) ", weiss ich das es so geht.
Ich wollte mir den Rückgabe wert nach dem ersten klick ausgeben.
Da es ja beim ersten klick nicht funktioniert.

Und ja, das alles stht in der onRelease Funktion.
Eventuell werden dann die Textfelder aus dieser Release-Funktion nicht richtig adressiert
Das würde aber nicht erklären warum die Funktion erst in der "If" Bedingung aufgerufen wird und warum
die Funktion nicht abgearbeitet wird. Den sobald die Funktion aufgrufen wird kann ich auch nicht mehr
weiter debuggen. Das Program ist anscheinend fertig. Erst nach einem erneuten klick wird die Funktion
auch abgearbeitet.
Warum wird der onRelease-Ereignis ausgelöst wenn es nicht richt abarbeiten kann bzw. gleich wieder abbricht.

Danke und Lg
WaZZkeSS
 
...klar.

Da ich mich in der nächsten Zeit mehr mit Flash beschäftigen werde hätte ich gerne noch einpaar Fragen erklärt.

1) Ist es mit Flash vorteilhafter, so viel es geht Dynamisch auszulesen (z.B. Anzeigetext von Label, Buttons usw.), um später
leichter in anderen Sprachen ändern zu können.

2) Ich möchte auch die Buttons dynamisch erstellen. Bsp:
Code:
  btnSend = _root.createEmptyMovieClip("btnSend", 1);  
  btnSend.createTextField("textbox1", 5, 23, 0, 50, 20);
  btnSend.attachMovie("button", "btnSend", 1);
  ... ... ...
  // Zentrieren vom Text geht nicht
  btnSend.txtS.htmlText = "<font align=\"center\" size=\"14\" face=\"Bauhaus lt Bt\">" + "Send" + "</font>";
2.1) Wie kann ich sonst den Text zentrieren ausser mit der _x Position

3) Umlaute werden nicht angezeitgt bzw. ab dem Zeichen abgeschnitten.
Ich habe "Geräteschrift verwenden" angewendet um dies anzeigen zu können allerdings schaut das ganz schö besch... aus.
Gibt es eine andere Lösung?

Ich wäre dir dankbar wenn du mir da weiter helfen könntest.
Danke und Lg
WaZZkeSS
 

Anhänge

  • dummy.zip
    95,1 KB · Aufrufe: 17
Hallo,

habe den Beitrag hier gelesen und wollte kein neues öffnen.
Ich möchte den Text von einem Button dynamisch ändern.
Aber einen Button den ich selbst erstellt habe.
Dieser beinhaltet einen dyn. Textbox.
Der Text wird von einer datei ausgelesen aber schaffe es nicht nach dem auslesen
den Text anzubinden.
Code:
button1.textbox1.text = _newVal;

Danke
 
WaZZkeSS -
1. du definierst die Funktion innnerhalb des on(release)-Blocks. Tu das nicht! Zieh die einfach aus dem Block raus, dann funktioniert es. Zumindest der Aufruf, denn das hier:
Code:
loadVariables("mail.php4", "", "POST");
ist nicht allzu sinnvoll. Du gibst nicht an, was überhaupt gesendet werden soll, die eingegeben Formulardaten werden also nicht an deine php geschickt. Am besten verwendet man dafür ein LoadVars-Objekt, wie im folgenden Beispiel

Code:
sender = new LoadVars();
		sender.txtBetrefff = txtBetreff.text;
		sender.txtVN = txtVN.text;
		// ...
		sender.sendAndLoad("mail.php", sender, "POST");
		sender.onLoad = function() {
// wird aufgerufen, wenn die php was zurückgeschickt hat wie z.b. ein "success = true"
			if(success)
					txtMsg.text="Ihre Nachricht wurde erfolgreich versendet";
		}

2. Zuallererst hast du das Textfeld nicht als htmlTextfeld deklariert, verwendest aber dann die htmlText-Eigenschaft. Das geht so natürlich nicht. html-Textfelder können halt nicht alles. <font align=center> ist vielleicht etwas viel, probier es mal einfach mit <center></center>

3. Bette die Schriftart ein. Such dazu einfach mal bei Google nach "flash embed font"

meste,
im Prinzip müsste das so gehen - da muss man mehr als diesen Codeschnipsel sehen, um zu schauen, woran das liegt.

Gruß
 
Zurück