| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2003
Beiträge: 106
| Übergabe von Variablen
Hallo Ich sehe den Wald vor lauter Bäumen nicht... In einem Bestellformular soll während der Mengeneingabe gleichzeitig im Feld "gesamt" die Gesamtzahl erscheinen. Als Beispiel. Dazu habe ich im ersten Frame folgendes as geschrieben: nebel = ""; mord = ""; Number(nebel); Number(mord); total = nebel+mord; if (total>=0) { gotoAndStop(2); } Im zweiten dieses: gesamt.text = total; stop(); Aber es funktioniert nicht. Falls der Fehler woanders liegt, habe ich die fla angehängt. Ich hoffe, das mir einer das Brett vom Kopf nehmen kann :-)) Gruß Libuda |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| ActionScript:
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (20-03-2005 um 16:55 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2003
Beiträge: 106
|
Danke hgseib, aber das klappt nicht. Bei "Nebel" und "Mord" erscheint konstant eine 0, gesamt zeigt gar nichts an... Bin jetzt soweit, dass ich mit: on (keyPress "<Enter>") { gesamt = mord; } ... nach "Enter" das Ergebnis in gesamt stehen habe. Das gleiche soll jetzt noch bei betätigen der linken Maustaste passieren. Dann muss ich "nur" noch mehere Variablen zusammenfassen und ausschließen, das Dezimalzahlen angezeigt werden... Gruß Libuda |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
weil du "Nebel" sowohl als instanzname als auch als variablenname im selben textfeld drinn stehen hast. schmeiss den variablennamen raus - ist veraltete technik. alle drei namen, die ich angegeben habe, beziehen sich eindeutiger weisse auf instanznamen! und das du mit 2 frames arbeitest (vorallem wie) ist auch unfug. lösch bitte den letzten. ---------- versuch mal mit dem debugger von flash klar zu kommen: - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. also genau das richtige auch für einsteiger!
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (21-03-2005 um 12:14 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Oct 2003
Beiträge: 106
|
Danke. Ich habe geglaubt, es wäre in dem Fall egal, ob ich den Instanznamen oder die Variable anspreche. Der zweite frame war Quatsch, stimmt. Ich habe es zwischenzeitlich mit meinem as hinbekommen, da ich es auch verstehen möchte, was bei deinem nicht der Fall ist. So weit bin ich noch nicht. Der einzige Haken ist noch, das ich keine Dezimalzahlen hinbekomme. Muss doch möglich sein, das in meinem einfachen as zu realisieren: on (keyPress "<Enter>") { gesamt = Number(mord)+Number(nebel); summe = (mord*11)+(nebel*11); } 11 ist der jeweilige Preis, der aber eigentlich bei 11,80 liegt. Ich habe es schon mit parseFloat und parseInt versucht, aber ohne Erfolg. Dann wäre es noch schön, wenn das ganze zusätzlich noch bei drücken der linken maustaste klappt. Gruß und vielen dank für deine Mühe Libuda |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
debuggen und nachsehen, was in den variablen drinn ist und viele trace(xxx); einbauen, hilft weiter! "..weit bin ich noch nicht.." mit der vorlage kannst du jeden befehl nachlesen: ActionScript:
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (21-03-2005 um 13:13 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Oct 2003
Beiträge: 106
|
Okay, das macht wahrscheinlich Sinn. Ich werde es wohl so machen. Obwohl ich dein as immer noch nicht richtig verstehe, vor allem diese Zeile: for (i=1; i<=2; i++) { vSum += (_root['mord'+i].text) ? Number(_root['mord'+i].text) : 0; Was ist i? Wo ist diese Variable definiert? Wo ist das next zu dem for und wozu eckige Klammern? Ich glaube, das lerne ich nie, auch wenn ich erst vor zwei Wochen angefangen habe. Aber ich kann ja nur lernen, wenn ich auch einfache Sachen programmieren kann. Ich hänge mal eine fla dran, die ich nicht begreife. Es läuft im Prinzip gut, aber nur, wenn ich zu "Kopfweiden" noch min. einen Artikel eingebe. Obwohl ich alles exakt gleich gemacht habe. Wäre nett, wenn du dir das mal ansiehst und mir sagen könntest, wo der Fehler liegt. Gruß und nochmals Danke für deine Mühe Libuda Geändert von libuda (21-03-2005 um 14:58 Uhr) |
| | |
| | #8 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
"..Was ist i? Wo ist diese Variable definiert? Wo ist das next zu dem for und wozu eckige Klammern? Ich glaube, das lerne ich nie.." also gundlegendste elemente wie z.b. eine for-schleife sollte man schon können. wenn nicht, da ist das forum der falsche platz (ist genauso wie jemand, der nicht lesen kann - dem können wir HIER auch nicht helfen). da versuchs bitte mal mit einem buch bzw. es gibt schulungen. und programmieren ist auch nicht mehr so exotisch wie vor 25 jahren. also in deiner umgebung sollte es schon jemanden geben, der programmieren kann. lass dir von denen mal die elementarsten grundbegriffe der programmiererei erklären.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Oct 2003
Beiträge: 106
|
Okay, da habe ich mich jetzt reingelesen und es einigermaßen verstanden. Ich habe hier mehrere Handbücher und verfahre nach der "learning by doing" Methode. Wenn ich mir zunächst alle Bücher durchlese, habe ich die Hälfte vergessen, sobald ich beginne. Der Rest der HP steht im groben und funktioniert. Ich möchte auch nicht Programmierer werden, sondern nur für meine Zwecke eine einzige HP mit Flash basteln. Logisch, das ich dafür einige Grundkenntnisse benötige, darum bemühe ich mich ja. Ich habe dein Script wie gesagt mittlerweile in groben Zügen nachvollziehen können und eingebaut. Es ist mir gelungen, es anzupassen und es klappt. Mit arrays habe ich mich noch nicht ausreichend beschäftigt, da bei meinem Projekt im Schnitt ein Artikel pro Jahr hinzukommt. Da kann ich momentan noch einmal jährlich ein paar Zeilen ändern. Nun nochmal zum script: Ich möchte noch in einem Feld den Gesamtpreis und dann analog dazu die Märchensteuer in einem anderen Feld ausgegeben haben. Naiverweise habe ich geglaubt, dein as dazu einfach nur geringfügig modifizieren zu müssen, aber das klappt nicht, jedenfalls nicht so: _root.nebel.restrict = "0-9"; _root.nebel.maxChars = 3; _root.mord.restrict = "0-9"; _root.mord.maxChars = 3; _root.weiden.restrict = "0-9"; _root.weiden.maxChars = 3; // function fSumme() { var vSum = 0; vSum += (_root.nebel.text) ? Number(_root.nebel.text) : 0; vSum += (_root.mord.text) ? Number(_root.mord.text) : 0; vSum += (_root.weiden.text) ? Number(_root.weiden.text) : 0; _root.gesamt.text = (vSum) ? vSum : " "; } function pSumme() { var pSum = 0; pSum += (_root.nebel.text)*11.80 ? Number(_root.nebel.text) : 0; pSum += (_root.mord.text)*11.80 ? Number(_root.mord.text) : 0; pSum += (_root.weiden.text)*9.00 ? Number(_root.weiden.text) : 0; _root.preis.text = (pSum) ? pSum : " "; } _root.nebel.onChanged = fSumme; _root.mord.onChanged = fSumme; _root.weiden.onChanged = fSumme; Vermutlich versuche ich, einen String zu multiplizieren. Muss ich noch jede Variable vorher mit: Number(mord) umwandeln oder steht der Preis falsch, oder...??? Gruß Libuda |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |