Flashhilfe.de - Flash Community

Numerisches Eingabefeld...NaN bei Buchstaben [Flash 8]

 


AntwortenRegistrieren Seite1  

subsonic#1
Benutzerbild von subsonic
Beiträge: 45
Registriert: Mar 2002

16.09.2011, 11:08

Hallo , ich habe mal noch eine Frage.
Wie im Titel schon beschrieben habe ich über
ActionScript:
1restrict="0-9";
zwar die Eingabe auf Nummern beschränkt, allerdings ist es immer noch möglich jede Taste des Keyboards zu nutzen, woraufhin mir das Ergebnis natürlich Not a Number zurückgibt. Mit welcher Möglichkeit könnte ich das unterbinden, so das tatsächlich nur Nummern ausgewertet werden? Habe leider nichts über die Suche finden können. Sicher gibt es schon dutzende Lösungen hier...wenn man weiß, wonach man suchen muss.;-)
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.09.2011, 11:50

Wie setzt du das restrict denn ein? Hast du es in einer funktion die nach jedem tastendruck eine Überprüfung macht oder in einer onEnterFrame-Funktion?
Das sollte klappen:
ActionScript:
1
2
3
this.onEnterFrame = function() {
  deintextfeld.restrict = "0-9";
}
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
RustyCake#3
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

16.09.2011, 11:51

Richtig angewandt, sollten eigentlich nur eingaben von Ziffern möglich sein.
Irgendwo hast Du einen Hund drin.
Zeig mal das ganze Script.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
subsonic#4
Benutzerbild von subsonic
Beiträge: 45
Registriert: Mar 2002

Themenautor/in

16.09.2011, 12:12

Hi Vindel...klappt leider nicht mit der Funktion.

Das ganze Script?!?...Ist mir ja fast ein bisschen peinlich.;-) Ich programmiere sonst nie und das ist nur ein erster Test, den ich dann final sicher noch schlanker bzw. eleganter machen werde. ;-)

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
////////Kommastellen erzwingen///////
function darstellen (zahl) {
      merker = zahl;
      if (int(merker) == zahl) {
          return String(zahl) + ".00";
      } else if (int(merker*10) == zahl*10) {
          return String(zahl) + "0";
      } else {
          return String(zahl);
      }
}
this.onEnterFrame = function() {
      item1.restrict="0-9";
      item2.restrict="0-9";
      item3.restrict="0-9";
      item4.restrict="0-9";
}





////Stück mal preis////
function gesamt ( stk, preis) {
     endpreis = Number(stk.text) * Number(preis.text);
     return Number(endpreis);
     }

item1t = gesamt (item1,item1p);
item1total = darstellen (item1t);

item2t = gesamt (item2,item2p);
item2total = darstellen (item2t);

item3t = gesamt (item3,item3p);
item3total = darstellen (item3t);

item4t = gesamt (item4,item4p);
item4total = darstellen (item4t);

inputT = item1t + item2t + item3t + item4t;
inputTotal = darstellen (inputT);

item1.onChanged = function () {
  gotoAndStop("_go");
}

item2.onChanged = function () {
  gotoAndStop("_go");
}
item3.onChanged = function () {
  gotoAndStop("_go");
}
item4.onChanged = function () {
  gotoAndStop("_go");
}


Geändert von subsonic am 16.09.11 um 12:23 Uhr
RustyCake#5
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

16.09.2011, 12:24

"item1.item1t.restrict="0-9";"

Wenn Du einem Clip restrict zuweist, bringt das nicht viel.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.09.2011, 12:25

mit "darstellen (item4t);" greifst du auf die Instanz zu. Es wird also "_level0[....]item4t" der Funktion übergeben - und das ist natürlich keine Nummer!
Du willst den Inhalt des textfeldes übergeben, also einfach ein ".text" dran hängen:
ActionScript:
1darstellen (item4t.text);
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
subsonic#7
Benutzerbild von subsonic
Beiträge: 45
Registriert: Mar 2002

Themenautor/in

16.09.2011, 12:47

ActionScript:
1darstellen (item4t.text);

Hmm...da bekomme ich ein undefined.
vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.09.2011, 20:17

Das ist ja quatsch - du hast ja noch die Hilfmethode zum rechenen, hatte ich übersehen!
Also in deiner "gesamt-Methode": Was ist wenn eines (oder beide) Felder leer sind? Dann verscuht flash "" und "" zu pultiplizieren - und das ist wahrlich keine Nummer!
Also eine kleinen Überprüfung einbauen:
ActionScript:
1return (Number(endpreis) ? Number(endpreis) : 0);
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
subsonic#9
Benutzerbild von subsonic
Beiträge: 45
Registriert: Mar 2002

Themenautor/in

17.09.2011, 12:54

Klasse vindel. 1000 Dank. :-)

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de