Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-09-2003, 08:45   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 51
Mathezeichen verwenden?!

hi

wie kann ich bestimmte mathe zeichen in einer Variablen auch als soclhe verwenden? Also ich möchte z.B. das eine variable h0 eine 4 ist und die nächste h1 ein "mal-zeichen" und das nächste wieder eine zahl h2 = 5. so und nun möchte ich irgendwie die drei variabllen in einer formeln zusammenfügen geht das irgendwie, also dass ich da "20" rausbekomme (ohne das ich jetzt im code "h0 * h2" schreibe, denn ich möchte auch mal h1 verändern...)

danke schonmal


ActionScript:
  1. h0 = Number(4);
  2. h1 = "*";
  3. h2 = Number(5);
  4. h = h0 + h1 + h2; // funktioniert alles nicht
  5.  
trebek ist offline   Mit Zitat antworten
Alt 17-09-2003, 09:10   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
puh... so wird das gar nicht gehen denke ich....
mach es über eine funktion...
am besten fügst gleich eine methode dem math object hinzu...
z.b. in die richtung
ActionScript:
  1. Math.fnc = function(n1, operator, n2)
  2. {
  3.     switch (operator)
  4.     {
  5.         case "*": return n1*n2;
  6.         case "/": return n1/n2;
  7.         case "+": return n1+n2;
  8.         case "-": return n1-n2;
  9.     }   
  10. };
  11.  
  12. // testen
  13. h = Math.fnc(25, "-", 20)
  14. trace(h) // 5
  15.  
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 17-09-2003, 09:24   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 51
danke, ich probiere mal diesen weg. hab auch schon an sowas gedacht, nur ist dass problem bei diesem weg, dass ich es nicht variabel genug hab. wenn ich nämlich jetzt eine funktion "4+3-5*6" eingebe, komme ich nicht mehr mit den drei variablen aus...
trebek ist offline   Mit Zitat antworten
Alt 17-09-2003, 09:55   #4 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
hey Scrawer
das is ja n cooles teil !!



Edit: du kannst es auch ohne 'Math' schreiben
__________________
gruß bloba

2 x onkel² b_d

Geändert von bloba (17-09-2003 um 09:57 Uhr)
bloba ist offline   Mit Zitat antworten
Alt 17-09-2003, 10:13   #5 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
sers bloba
k.. geht auch ohne Math.. dachte nur ist übersichtlicher....

wegen... 4+3-5 usw....

könntest es über Number prototype machen.. dann kannst es verschachteln...
z.b.
ActionScript:
  1. Number.prototype.fnc = function(operator, n2)
  2. {
  3.     switch (operator)
  4.     {
  5.         case "*": return this*n2;
  6.         case "/": return this/n2;
  7.         case "+": return this+n2;
  8.         case "-": return this-n2;
  9.     }   
  10. };
  11.  
  12. // testen
  13. var h = 30;
  14. var x = 10;
  15. var y = 5;
  16.  
  17. erg = h.fnc("-",x).fnc("*", y); // h-x*y
  18.  
  19. trace(erg) // 100
  20.  
ein möglicher weg.. du könntest dir auch eine function machen wo du nur einen string wie "4-5*3" übergibst und in der function.. den string per split() zerlegst.. und berechnest....
da gibt es viele wege so was zu lösen
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 17-09-2003, 10:46   #6 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
ok... hier nun eine bessere lösung...
ActionScript:
  1. Math.fnc = function(arg)
  2. {
  3.     var arrI = [], arr = arg.split(""), count;
  4.  
  5.     for (var i=0; i<arr.length; i++)
  6.     {
  7.         if (String(parseFloat(arr[i])) == "NaN")
  8.         {
  9.             arrI.push(count);
  10.             arrI.push(arr[i]);
  11.             count = "";
  12.         }
  13.         else count = count add arr[i];
  14.     }
  15.     arrI.push(Number(count))
  16.     // :::
  17.     var erg = arrI[0]
  18.     for (var i=1; i<arrI.length; i++)
  19.     {
  20.         switch (arrI[i])
  21.         {
  22.             case "*": erg *= arrI[i+1]; break;
  23.             case "/": erg /= arrI[i+1]; break;
  24.             case "+": erg += arrI[i+1]; break;
  25.             case "-": erg -= arrI[i+1]; break;
  26.         }
  27.         if (i+1 == arrI.length) break;
  28.     }
  29.     return erg;
  30. }
  31.  
  32. // test
  33. x = Math.fnc("30-10*5+13")
  34. trace(x) // 113
  35.  

etwas umständlich in der methode... aber auf die schnelle viel mir nix besseres ein... es läuft und ist fein anzuwenden nur das ist wichtig
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 17-09-2003, 11:05   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 51
das ist schonmal ganz geil :D DANKE DANKE

aber es beachtet die "punkt vor strich" regel nicht...
trebek ist offline   Mit Zitat antworten
Alt 17-09-2003, 11:13   #8 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
tztz... ein wenig kreativ denken bitte
diese möglichkeit bitten alle drei meiner lösungs vorschläge hier ein bsp.. mit dem letzten
ActionScript:
  1. x = Math.fnc("30-10*5+13")// 33
  2.  
  3. x = Math.fnc("30-"+Math.fnc("10*5")+"+13") // -7
  4.  
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 17-09-2003, 11:18   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 51
lalala *malunaufälligindieluftguckundpfeif*

jup klar schuldigung, da hab ich wirklich nicht nachgedacht...
trebek ist offline   Mit Zitat antworten
Alt 17-09-2003, 11:32   #10 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
Wink

.
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer 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:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele