Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-12-2005, 11:39   #1 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
benötige dringent hilfe!!

ich bin gerade dabei einen kleinen Taschenrechner zu realisieren:
auf der bühne habe ich 2 textfelder eins für eingabe eins für ausgabe(die jeweils auch diese variablen tragen) und einen button.
Nun habe ich erst einmal im ersten frame 4 functionen definiert.
PHP-Code:
function rechmal(ab) {
    return 
a*b;
}
function 
rechteil(ab) {
    return 
a/b;
}
function 
rechplus(ab) {
    return 
a+b;
}
function 
rechminus(ab) {
    return 
a-b;

auf dem Butten habe ich bis jetzt volgendes AS
PHP-Code:
on(release){if(eingabe == "+"&&""){rechplus();} 
was allerding komplet falsch ist

heisen sol das:
PHP-Code:
on(release){
if (
im textfeld eingabe ein pluszeichen oder eine zahl von 0-9 steht){
führe die function in dem fall rechplus aus;

das 2. Problem ist wie bekomme ich die jeweiligen werte in die functionen?
allso zb wenn im Eingabetextfeld 2+4 steht müssen ja die buchstaben a,b beim aufruf der function durch die zahlen 2,4 ersetzt werden!

würd mich über schnelle hilfe freuen!!
Angehängte Dateien
Dateityp: rar taschenrechner.rar (3,8 KB, 7x aufgerufen)

Geändert von lueti25 (01-12-2005 um 11:40 Uhr)
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 11:59   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!
Was da im Textfeld steht kannst du mit indexOf() checken. Dann mit split() auseinander fummeln und an die Funktion schicken. Allerdings bedarf es bei sowas wie:
2+3*4+5/7 wohl noch etwas mehr...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 01-12-2005, 12:07   #3 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
könntes du mir vileicht etwas genauer sagen wie und wo ich die werte einsetzen muss?
Ich binn noch relativ am anfang mit AC und habe die strukturen noch nicht ganz durchschaut!

Theoretisch hab ich die sache verstanden nur praktisch noch nicht ganz!
könntest du die werte mal in mein gepostets script einsetzten?
währe nett!
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 12:41   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
function rechplus(ab) {
    return 
Number(a)+Number(b);
}
//
var txt "2 + 7";
txt txt.split(" ").join("");//evtl. vorhandene Leerzeichen raus
if (txt.indexOf("+") == 1) {//Wenn ein + drin ist...
    
txt txt.split("+");//...dann in den Wert vor und hinter dem + splitten...
    
trace(rechplus(txt[0], txt[1]));//...und diese an die Funktion senden.

Was ich nicht weiß ist, ob man in Flash einen String in eine Formel konvertieren kann. Klar, geht's irgendwie, aber ob's halt einen einfachen Befehl dafür gibt.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 01-12-2005, 12:45   #5 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
ok das hört sich gut an THX erstmal!

aber du hast jetzt bei

PHP-Code:
var txt "2 + 7"
geschrieben ich wollte aber die werte aus dem eingabefeld ziehen!
weist du wie ich meine?

Geändert von lueti25 (01-12-2005 um 12:48 Uhr)
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 12:51   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Klar weiß ich, was du meinst. Nur solltest du das eigentlich auch selber hinbekommen:
PHP-Code:
var txt this.dein_textfeld.text 
"dein_textfeld" wäre dann der Instanzname...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 01-12-2005, 12:57   #7 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
ja häte ich selbst draufkommen können.

aber noch eine frage:
und zwar wie zeige ich das ergebniss dan im feld ausgabe an?
und gibt eis eine möglichkeit das ich
PHP-Code:
var txt this.dein_textfeld.text;  
txt txt.split(" ").join("");//evtl. vorhandene Leerzeichen raus
if (txt.indexOf("+") == 1) {//Wenn ein + drin ist...
    
txt txt.split("+");//...dann in den Wert vor und hinter dem + splitten...
    
trace(rechplus(txt[0], txt[1]));//...und diese an die Funktion senden.

diesen block nicht 4 mal also für jedes zeichen(+,-,*,/) 1mal schreiben muss?
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:28   #8 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
Hmm ... selbst wenn du das 4 mal für jedes rechenzeichen machst wird das kaum funktionieren ... überleg doch mal:

der user gibt ein 1+2-5/2*17+2

Dann musst du

1. den string an den stellen auseinandernehmen an denen ein Rechenzeichen ist
2. rausfinden welche der zahlen neben den rechenzeichen liegen
3. irgendwie noch punktrechnung vor strichrechnung beachten

Das ist nicht unkompliziert

Fragers Anzatz ist zwar gut funktioniert aber nur bei genau 2 Zahlen und einem Rechenzeichen.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:33   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von Der Frager
Allerdings bedarf es bei sowas wie:
2+3*4+5/7 wohl noch etwas mehr...
Sage ich doch .

Beim Seib gibt's einen Taschenrechner (www.seibsprogrammladen.de bei den Beispielen "String_calculator"). Da versteht man aber nurnoch Bahnhof. (Wie sooft, wenn der loslegt...)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:35   #10 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
Ja ... ich wollte es nur nochmal deutlich machen das das nicht in 5 minuten gemacht ist
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:37   #11 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
noch eine verständnisfrage zu dem Ansatz von frager!
wie bekomme ich das ergebniss in das Textfeld ausgabe mit der selbigen variablen?

Has du ne bessere Idee? ich denke da vileicht an arrays oder so?!
wobei ich mich mit arrays bis jetzt nur flüchtig beschäftigt habe!

edit: ihr habt schon recht! aber da ich ja noch in der lernphase binn genügt mir ein derart simpler rechner erstmal

Geändert von lueti25 (01-12-2005 um 13:41 Uhr)
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:43   #12 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Die Zeile war eh erstmal falsch:
PHP-Code:
if (txt.indexOf("+") != -1)//So gehört das! 
Und wenn du das in ein Textfeld ausgeben willst, dann halt so:
PHP-Code:
this.dein_textfeld.text = (rechplus(txt[0], txt[1])); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 01-12-2005, 13:54   #13 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
vielen dank!

ich habe jetzt auf den butten ergebniss mit dem selben instanznamen den script gelegt!
PHP-Code:
on(release){
    if (
txt.indexOf("+") != -1) {
    
txt txt.split("+");
    
this.ausgabe.text(rechplus(txt[0], txt[1]));
trace(rechplus(txt[0], txt[1])); //hir bekomme ich NaN ausgegeben wieso??

der rest des scriptes liegt im ersten fram.

Geändert von lueti25 (01-12-2005 um 13:55 Uhr)
lueti25 ist offline   Mit Zitat antworten
Alt 01-12-2005, 14:05   #14 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
PHP-Code:
on(release){
  var 
txt this._parent.eingabe.text;
  
  
txt txt.split(" ").join("");
  
  if (
txt.indexOf("+") != -1) {
    
txt txt.split("+");
    
this._parent.ausgabe.text rechplus(txt[0], txt[1]);
 }

Das müsste gehen wenn das eingabetextfeld den Instanznamen "eingabe" und das ausgabetextfeld den instanznamen "ausgabe" hat.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 01-12-2005, 14:13   #15 (permalink)
Prof.|E-learner|
 
Benutzerbild von lueti25
 
Registriert seit: Jul 2005
Beiträge: 153
textfeld eingabe und ausgabe heisen richtig!

PHP-Code:
on(release){
  var 
txt this._parent.eingabe.text;
  
  
txt txt.split(" ").join("");
  
  if (
txt.indexOf("+") != -1) {
    
txt txt.split("+");
    
this._parent.ausgabe.text rechplus(txt[0], txt[1]);
 }    
trace(rechplus(txt[0],txt[1])); //hir bekomme ich wieder NaN!!

irgentwie scheinen er die Zahlen nicht richtig weiter zu leiten!
kann es sein das die Zahlen bei einer operation in ein string gecastet werden?

Geändert von lueti25 (01-12-2005 um 14:20 Uhr)
lueti25 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 19:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele