Autor |
Nachricht |
gotoAndPlay
Threadersteller
Dabei seit: 22.11.2006
Ort: -
Alter: 40
Geschlecht:
|
Verfasst Fr 15.02.2008 12:34
Titel Flash: Rechenproblem |
|
|
Moin,
ich will in einer Flash Animation etwas ausrechnen lassen.
Dafür lade ich eine XML Datei und weise dann die Variablen der XML Datei diversen Punkten zu.
Die Flash Datei soll nun die XML Felder xmlinhalt[3] und xmlinhalt[4] multiplizieren und in einem Textfeld ausgeben.
Code: |
{
var ausgabe = Number(xmlinhalt[3].text) * Number(xmlinhalt[4].text);
_root.veränderung.text = ausgabe;
}
|
Leider gibt er mir jedes mal als Antwort: NaN also (Not A Number, keine Zahl)
In der XML Datei sind aber nur Zahlen angegeben!
Zuletzt bearbeitet von gotoAndPlay am Fr 15.02.2008 13:34, insgesamt 2-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Fr 15.02.2008 13:12
Titel
|
|
|
Alle Daten die Flash von extern kriegt haben den Typ String (mach mal typeof(xmlinhalt[3].text )
Richtig wäre in deinem Fall:
Code: |
var ausgabe:Number = parseFloat(xmlinhalt[3].text) * parseFloat(xmlinhalt[3].text);
| für Kommazahlen bzw.
Code: |
var ausgabe:Number = parseInt(xmlinhalt[3].text) * parseInt(xmlinhalt[3].text);
|
für Ganzzahlen
|
|
|
|
|
Anzeige
|
|
|
gotoAndPlay
Threadersteller
Dabei seit: 22.11.2006
Ort: -
Alter: 40
Geschlecht:
|
Verfasst Fr 15.02.2008 13:39
Titel
|
|
|
Ich habe den ActionScript jetzt so angepasst, wie Du es geschrieben hast:
Code: |
{
var ausgabe:Number = parseFloat(xmlinhalt[3].text) * parseFloat(xmlinhalt[4].text);
_root.veränderung.text = ausgabe;
}
|
Die Fehlermeldung bleibt aber bei NaN
Falls ich dich richtig verstanden habe, sollte ich auch den typeof-Operator verwenden, was ich auch gemacht habe:
Code: | {
typeof(xmlinhalt[3].text);
typeof(xmlinhalt[4].text);
var ausgabe:Number = parseFloat(xmlinhalt[3].text) * parseFloat(xmlinhalt[4].text);
_root.veränderung.text = ausgabe;
} |
Doch auch hier bleibt die Ausgabe bei NaN
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Fr 15.02.2008 14:54
Titel
|
|
|
Wieso parst du deinen XML-Inhalt nicht direkt ins richtige Format, bevor du den Käse in dein Array schmeisst?
Danach kannste immer noch rechnen.
Zuletzt bearbeitet von l'Audiophile am Fr 15.02.2008 14:55, insgesamt 1-mal bearbeitet
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Fr 15.02.2008 15:13
Titel
|
|
|
Und mach mal das .text hinter deinem Array weg, das hat da nichts zu suchen! Dann klappts auch mit dem Nachbarn.
Und wenn du schon dabei bist – um den guten Stil zu waren – schmeiß die Sonderzeichen aus der Variable und verzichte in Zukunft darauf!
|
|
|
|
|
gotoAndPlay
Threadersteller
Dabei seit: 22.11.2006
Ort: -
Alter: 40
Geschlecht:
|
Verfasst Fr 15.02.2008 15:44
Titel
|
|
|
Hmm, das ist gerade das zweite mal das ich was mit XML in Flash mache...
pejot hat geschrieben: | Und mach mal das .text hinter deinem Array weg, das hat da nichts zu suchen! Dann klappts auch mit dem Nachbarn.
Und wenn du schon dabei bist – um den guten Stil zu waren – schmeiß die Sonderzeichen aus der Variable und verzichte in Zukunft darauf! |
Das .text sowie das Sonderzeichen habe ich entfernt.
pejot hat geschrieben: | Wieso parst du deinen XML-Inhalt nicht direkt ins richtige Format, bevor du den Käse in dein Array schmeisst?
Danach kannste immer noch rechnen. |
Kannst Du hier vielleicht etwas detaillierter werden
Denn trotz der Änderung klappt es nicht...
Meine XML Datei sieht so aus:
Code: |
<feld monat8="832486"/>
<feld monatname8="Dezember 2007"/> |
Und so hole ich sie mir in meine Flash Datei:
Code: | stop();
var XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("arbeitsmarkt.xml");
XMLdaten.onLoad = function(success) {
anzahl = XMLdaten.firstChild.childNodes.length;
xmlinhalt = [];
{
xmlinhalt[7] = XMLdaten.firstChild.childNodes[7].attributes.monat10;
xmlinhalt[8] = XMLdaten.firstChild.childNodes[8].attributes.monatname10;
}
gotoAndPlay(3);
} |
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Fr 15.02.2008 15:50
Titel
|
|
|
Du versuchst einen String mit einer Zahl zu multiplizieren. Das kann doch garnicht gehen
Wieviel ergibt 6 * Februar ? Bestimmt nicht Dezember oder 12
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Fr 15.02.2008 15:59
Titel
|
|
|
Mit strikter Typisierung wäre sowas nicht passiert.
PS. deine gepostete XML hat keine Kindknoten 7 & 8 und auch keine in firstChild verschachtelten Knoten
|
|
|
|
|
|
|
|
Ähnliche Themen |
[Flash,Swish] von Flash aus eine bestimmte Scene,Frame Laden
Flash-Animationen OHNE Macromedia Flash-Player abspielen
reine Flash-Seite oder lieber nur mit Flash-Elementen
Flash: Welcher Skill-Level für folgende Flash-Datei...
Flash verlinken, aber kein flash mehr drauf
Flash Player trotz Vollversion von Flash 8 aktualisieren ?
|
|