mal ein ganz interessantes Problem

T

Trinitron

naja, interessant? nein, aber einfach zu lösen (wahrscheinlich).

nehmen wir an, ich hab ne variable: gbname

Wenn ich testen will (beim senden) ob da was eingegeben wurde, muss ich was machen? ("gbname" == "" ) geht net. helft mir....


jetzt wirds schon anspruchsvoller. hab da ein flash4skript, das ich in flash5 benutzen will. Es ist zum testen, ob ne email-adresse eingegeben wurde!!! Müsste aber n bissle umgeschrieben werden, und ich bin zu dumm dafür!!!

wenn jemand mir den gefallen tun will, ich wäre sehr dankbar!!!!!:


Set Variable: "i" = "0"
Loop While (i < Length (email))
If (Substring ( email, i, 1) eq "@")
Set Variable: "emailat" = i
End If
If (Substring ( email, i, 1) eq ".")
Set Variable: "emailpunkt" = i
End If
Set Variable: "i" = i + 1
End Loop
If (emailpunkt<=emailat or emailpunkt = 0 or emailat = 0 or (emailpunkt - emailat) < 2 or (Length (email) - emailpunkt) < 2 or (Length (email) - emailpunkt) > 3 or emailat = 1)
Set Variable: "error_txt" = "Bitte prüfen Sie Ihre Angaben."
Else
Set Variable: "error_txt" = ""
Go to and Play ("senden")
End If




danke.... timmy
 
zu frage 1:

wenn du vorher irgendwo ganz am anfang festsetzt gbname="", dann klappt auch die überprüfung
if (gbname != ""){
abschicken;
}else{
meckern;
}
du musst das gbname ="" natürlich irgendwohinpacken wo das gbname textfeld auch ist, bzw die variabel.
d.h. wenn z.b. gbname erst in mc1, der in mc2 liegt vorkommt, und mc2 erst bei frame 2197 in der maintimeline drankommt. dann bringt das nicht viel in szene 1, frame 1 gbname="" zu sagen, da er da gbname noch nich kennt.
also entweder du sagst gbname="" da wo gbname vorkommt, oder du legst gbname direkt in szene1, frame 1, musst dann allerdings immer wenn du mit gbname arbeiten willst ein _root vorschreiben.
also wenn du in szene1, frame1 sagst gbname="", dann muß die abfrage, sofern sie in einem mc ist heißen:
if (_root.gbname != ""){
abschicken;
}else{
meckern;
}
ich persönlich lager alle variabeln immer in szene1 da kommt man nich durcheinander und kann sie relativ einfach "movieclipübergreifend" ändern.

für frage 2 bin ich gerade zu müde.... 3h schlaf reicht irgendwie nich....
 
was mir spontan aufällt zu frage 2:

wo sind den die ganzen geschwungenen klammern hin?
hast du das ohne sie abgetippt? ohne die geht das nich....

und bei der if-abfrage würd ich um jedes objekt, bzw vor & nach jedes or klammern machen. also so in etwa:

If ((emailpunkt<=emailat) or (emailpunkt = 0) or (emailat = 0) or ((emailpunkt - emailat) < 2) or ((Length (email) - emailpunkt) < 2) or ((Length (email) - emailpunkt) > 3) or (emailat = 1)){
Set Variable: "error_txt" = "Bitte prüfen Sie Ihre Angaben.";
} else{
Set Variable: "error_txt" = "" ;
Go to and Play ("senden") ;
}


achja und semikolons nach einem befehl machen sich auch nich schlecht....

<edit>
Set Variable: "error_txt" = "Bitte prüfen Sie Ihre Angaben.";

was soll das denn machen?
es können nicht auf beiden seiten von einem setvari anführungsstriche stehen. variabeln werden ohne anführungsstriche geschrieben. inhalte (string, numerisch (integer nicht)) werden mit anführungsstrichen geschrieben.
also ich würd das so schreiben:
error_txt = "bitte, bitte, bitte...";
oder wenn die vari in szene 1 liegen soll
_root.error-txt="danke, anke";
</edit>
 
Zuletzt bearbeitet:
also, ich merk schn... du KÖNNTEST es auch so machen, das ich es verstehen könnte. Vielleicht könnte ich was damit anfangen, wenn du es so umschreibst, dass ich es nur noch reinkopieren zu brauche, wär ich schon mal SEHR dankbar!

zur erklärung: ich hab das skript mal rausgekramt, und nur hier reinkopiert. warum da soviele zeichen fehlen? kein plan, ham warscheinlich schon gefehlt! vielleicht hat man sie in der version, in der es geschreiben würde, das noch nicht gebraucht!


thzx timmy
 
faule sau, du! soll ich hier die ganze arbeit machen? ;)


nagut...
also wenn man den ganzen kram in flash5 "übersetzt" dürfte er so aussehen:

i=0;
while (i<length(email)) {
if (substring (email,i,l)== "@") {
emailat=i;
}
if (substring (email,i,l)== ".") {
emailpunkt=i;
}
i++;
}
if ((emailpunkt<=emailat) or (emailpunkt==0) or ((emailpunkt-emailat)<2) or ((length(email)-emailpunkt)<2) or ((length(email)-emailpunkt)>3) or (emailat=1)) {
error_txt="Bitte prüfen Sie Ihre Angaben.";
} else {
error_txt="";
gotoAndPlay ("senden");
}


allerdings bin ich mir nich so sicher ob das ding so funtkioniert...
bei dem substring ist das "l" nich defniniert. ich glaub da sollte lenght drin stehen...
also nochma für faule:

i=0;
while (i<length(email)) {
if (substring (email,i,length)== "@") {
emailat=i;
}
if (substring (email,i,length)== ".") {
emailpunkt=i;
}
i++;
}
if ((emailpunkt<=emailat) or (emailpunkt==0) or ((emailpunkt-emailat)<2) or ((length(email)-emailpunkt)<2) or ((length(email)-emailpunkt)>3) or (emailat=1)) {
error_txt="Bitte prüfen Sie Ihre Angaben.";
} else {
error_txt="";
gotoAndPlay ("senden");
}


hab das ding nich ausprobiert, kein plan ob´s klappt oder nich, ansonsten hab ich hier noch ne simplere variante:

atpo=email.indexOf("@");
if ((atpo != -1) and (email.indexOf(".")>atpos)) {
gotoAndPlay ("send");
} else {
error_txt="Bitte prüfen Sie Ihre Angaben.";
}
 
soo, jetzt ist der punkt, wo ihr mich für BESCHEUERT ERKLÄREN könnt!!!!

WAS MUSS ICH MACHEN. die ******** reagiert nicht! so dumm kann ich gar net sein... oder doch??? ALSO: ich setzte eines dieser skripte (hab alle drei probiert) in den SENDEN -button. Meine variable heisst EMAIL . und diese soll überprüft werden. Und wenn da z.b.: steht dfasejdf@ejg.de , dann sollte in die nächste frame übergehen. ich setz es in eine on(release)-teil ein!

bitte helft mir! ich weiss nicht wie, und wohin!!!

@kuat: ich bon wirklich sehr dankbar für deine Hilfe, aber ich hab dich nicht aus faulheit gebeten, sondern weil du was weisst, was ich net weiss. Kurz: Du haschs drauf, und ich bin der, ders irgendwann kapieren will!

@g-zus: ja, hasch schon recht, auch wenns ironisch gemeint war!

thx timmy
 
hay,

jungs, ich warte immernoch auf eure hilfe. ich kann sonst nicht weitermachen!

thx timmy
 
nun ja......wenn man schon sooooooo nett bittet!
lol

also, ich muss mir das errst mal durchlesen, weil ich bis jetzt nix über dein problem weiß.
Morgen oder so werd ich dann mal was posten.....
 
mann, ich bin echt ein trottel:

mir war jetzt soooooooooo langweilig, dass ich mir dein problem jetzt echt vorgenommen hab!

Also, das script stammt von kuat (dank an ihn; vielleicht wäre ein vermerk an ihn auch ned schlecht!)

so gehts:

erstell deinen movie ganz normal, mach ein texteingabefeld und weis ihm die variable "email" zu.
im gleichen frame machst noch einen send-button mit diesem ActionScript:

on (release) {
// Dieses Script stammt von http://www.kuat.de
// Bitte entfernen Sie diesen Vermerk nicht!
// Kuat

atpo = email.indexOf("@");
if ((atpo != -1) and (email.indexOf(".")>atpos)) {
gotoAndPlay ("send");
} else {
gotoAndPlay ("error");
}
}

ich hab mir erlaubt einen vermerk für kuat einzufügen, fairer weise!


bei diesem frame, wie auch bei den folgenden muss auch immer ein

stop();

befehl zugewiesen sein!oder besser gesagt, es wäre ratsam.....is ja dein movie!lol

nun erstellst du einen frame, dem du die bildmarkierung "send" (klick auf Fenster>Bedienfelder>Bild und da eingeben!) zuweist und dazu das actionscript

stop ();

hier fügst du am besten auch einen text ein wie "email wurde versendet!" oder so!
nun das gleiche nochmal, aber diesesmal nennst du die bildmarkierung "error". am besten wieder eine textmeldung wie in etwa "ein fehler ist aufgetreten!".
auch hier wieder der stop-befehl.
ich würde auch noch back-buttons einfügen, damit man zurück zum hauptframe bzw. zum formular fürs email-versenden kommt.

bei mir hats fast fehlerlos geklappt, nur eins macht probleme:

wenn man vor dem @-zeichen nichts einfügt, also das leer lässt,, erkennt er das nicht als fehler.
ich wollts ausbessern, aber ich kenn mich (zumindest) mit diesem ActionScript nicht so sehr aus.
Aber ist eigentlich egal....die hauptfunktionen laufen.

so das wars, jetzt zufrieden?
 

Neue Beiträge

Zurück