Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-06-2004, 19:47   #1 (permalink)
Neuer User
 
Benutzerbild von handbrake
 
Registriert seit: Dec 2002
Beiträge: 39
String to Code // mit eval string mathematisch ausrechnen

hallo!

folgendes funktioniert in javaScript:

Code:
 
einStringVomUserEingeben="x1+100+500/x2";
x1=300;
x2=100;
ergebnis=eval(einStringVomUserEingeben);
das ergebnis ist valid. javascript rechnet den sting so um, als wäre
er eine codeZeile im script:
Code:
ergebnis=x1+100+500/x2;

kann actionScript auch komplexe strings als code umsetzen?
oder geht es lediglich bei varialben/object-zuweisung?
Code:
einStringVomUserEingeben="x1+100+500/x2";
x1=300;
x2=100;
ergebnis=eval(einStringVomUserEingeben);
ergibt bei meinem flash kein valides ergebnis. ==>undifined.


da ich die Formeln als string aus einer XML-datei ziehe muss mir
bitte jemand erklären, wie man aus diesem string wieder
eine codeZeile erzeugen kann. in der formel kommen auch
Math-funktionen vor (z.B. Math.pow(x2, 3).

eine umwandlung des stings stück für stück via reguläreEx finde
ich mächtig umständlich.

hat jemand von den hellen köpfen eine einfache lösung an bord.

wäre dankbar.

Geändert von handbrake (09-06-2004 um 19:49 Uhr)
handbrake ist offline   Mit Zitat antworten
Alt 10-06-2004, 08:12   #2 (permalink)
Neuer User
 
Benutzerbild von lernenOhneEnde
 
Registriert seit: Jun 2004
Beiträge: 77
haste das mal mit einem doppelten eval getetstet, also:
eval(eval(xy));

loe
lernenOhneEnde ist offline   Mit Zitat antworten
Alt 10-06-2004, 10:13   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
du kannst in flashmx keine operatoren evaluieren
müsstest du selber "parsen"
also zB
v="3*5+6+3"
v splitten per "*"
dann herausfinden wo sich in den einzelnen elementen andere opearoten befinden-diese per vergleich auswerten etc hier in dem fall addieren,dann multiplizieren.
kann man hierarchisch aufbauen.

aber ist sehr umständlich würd ich mir nicht antun-wenn mans überhaupt fehlerfrei hinbekommt

was umfasst das xml? komplette mathematische bandbreite? oder gehäuft einzelne funktionen? dann wäre eventuell ne anpassung an dein xml möglich und du müsstest nicht soviel allgemeines abdecken.
aber hui...


deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 10-06-2004, 12:20   #4 (permalink)
Neuer User
 
Benutzerbild von handbrake
 
Registriert seit: Dec 2002
Beiträge: 39
@lernenOhneEnde
leider hat eval(eval(string)); kein effect.

@delux
die swf soll eine mathematische blackbox sein.

die variablen (x1-xn) sind vom user selber (hier via schieberegler) steurbar.

die ausgaben (y1-yn) werden aus funktionen (formeln), welche eine hohe komplexität haben (z.B. Math.pow, *, /, +, -, usw), errechnet.
die y-funktionsErgebnisse werden als balkenDiagramme dargestellt.
änder der user einen x-wert, so reagieren die balkenDiagramme auf die eingaben.

anzahl und art (eingabeSchieberegler, eingabeRadiobuttons und ausgabeBalkenDiagramme) von eingabeModulen(x)/ ausgabeModulen (y) werden von einer drittenPeron (ein MathematikExperte) in einer XML-Datei festgelegt. in dieser XML-Datei werden auch die funktionen (formeln) nach actionScript-notation für die jeweiligen ausgabeModule geschrieben.

das projekt muss eine XML-Datei auslesen, damit es ohne FlashKompilerApplication modifizierbar und ergänzbar bleibt.
die XML-datei dient sozusagen als configurationsDatei.

die formel ist ziemlich komplex und besteht aus einem grösseren polynom. dieses polynom sollte einfach notierbar bleiben und in der XML-datei auch noch für menschen nachvollziehbar sein (sprich: optimales handling bei der modifizierung der XML-datei).

es müsste doch eine global-function oder wenigstens eine klasse geben, die das leistet? für 50Euro kaufe ich so eine klasse. (für einen regEx-experten sollte diese programmierung doch kein ding sein )

Wer HILFT?

Geändert von handbrake (10-06-2004 um 12:23 Uhr)
handbrake ist offline   Mit Zitat antworten
Alt 10-06-2004, 13:17   #5 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
tjo dann musst du aber erstmal flash regEx beibringen

spricht etwas dagegen den string an javascript oder php zu übergeben?
oder muss das als projektor offline funktionieren?
michael ist offline   Mit Zitat antworten
Alt 10-06-2004, 13:25   #6 (permalink)
Neuer User
 
Benutzerbild von handbrake
 
Registriert seit: Dec 2002
Beiträge: 39
tja, stimmt. dat flashTier versteht ja auch leider kein regEx. (nichtmal in der neusten AS2.0-version?)

die box soll natürlich auch offline nutzbar sein.

scheint ja zu einer herausvorderung zu werden.
handbrake ist offline   Mit Zitat antworten
Alt 10-06-2004, 13:53   #7 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
Zitat:
Zitat von handbrake
tja, stimmt. dat flashTier versteht ja auch leider kein regEx. (nichtmal in der neusten AS2.0-version?)
nö auch nicht in AS2.
regEx kann man flash beibringen, dafür gibts klassen, wie gut die sind weiß ich leider nicht.

wenn du einen browser zur verfügung hast um es mit javascript zu lösen wirds wohl nicht leicht.

schau doch mal hier vorbei:

http://www.hutschdorf.de/flash/flash.htm

und klick auf "Funktionsplotter"

vieleicht kann dir der macher ja auch helfen.


gruß
michael
michael ist offline   Mit Zitat antworten
Alt 10-06-2004, 14:37   #8 (permalink)
Neuer User
 
Benutzerbild von handbrake
 
Registriert seit: Dec 2002
Beiträge: 39
gute idee. kommt schon den kern meines problemes nahe. werde mich mit dem herrn krauß in verbindung setzen.

bin aber immer noch offen, für neue und zielgerichtete ideen.

...
handbrake ist offline   Mit Zitat antworten
Alt 10-06-2004, 15:08   #9 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ich habe einen Interpreter für beliebige Formeln geschrieben. Wenn dich das interessiert, schick mir eine Mail an bokel.ff@bokelberg.de

mfg r.
bokel 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 08:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele