Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-05-2005, 17:16   #1 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 4
Unhappy 4+2 = 42 mein fehler oder bug?

Ich hab heute 3-5 h nach einem fehler in einem programm gesucht und habe ihn, glaube ich, auch jetzt gefunden, weil es für mich so aussieht als würde flash 4+2 = 42 rechen....

Ausschnitt aus dem quellcode

ActionScript:
  1. trace("e"+_root.y5.y12);
  2. _root.y5.y12=_root.y5.y12+2;
  3. trace("a"+_root.y5.y12);
das ergebniss vom trace:

e4
a42

(ursache könnte sein dass flash 4+2 als "4"+"2" interprtiert und deswegen 42 rasukommt (ist mir auch schonmal bei javascript passiert))

meine frage ist jetzt:

rechnet flash wirklich falsch oder hab ich da was übersehen?
wenn flash falsch rechnet hat jmd. ne idee für workaround?
Tim.Grocki ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:21   #2 (permalink)
BPA
back at school
 
Benutzerbild von BPA
 
Registriert seit: Apr 2002
Ort: Stuttgart
Beiträge: 991
Nun ja, eine 4 kann ja eine Zahl sein, oder mehr oder weniger ein Text (String). Ein e oder ein a kann nun aber mal keine Zahl sein. Deshalb interpretiert Flash hier die Zahlen als Strings, addiert also die Zahlen nicht, sondern fügt sie hintereinander zusammen.

Aber 42 ist ja eh die Antwort auf alle Fragen, wie hier mal wieder gezeigt wurde...


Wenn du möchtest, dass e6 und a6 rauskommt, musst du eben die beiden Zahlen addieren, bevor du mit dem String (e,a) verbindest.
__________________
Man sollte sich nicht schlafen legen, ohne sagen zu können, daß man an diesem Tag etwas gelernt hat.

| DWB | Gedichte | LEO | Lexika | Zedler |

home@flickr

Geändert von BPA (15-05-2005 um 17:25 Uhr)
BPA ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:25   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
ActionScript:
  1. var a = "4";
  2. var b = 2;
  3. trace (a + b); // --> 42
  4. trace (Number (a) + b); // --> 6
  5.  
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:28   #4 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 4
müsste flash nicht sowas rechnen, da in der 2. zeile keine strings enthalten sind

1. zeile: "a"+4="a4"
2. zeile: 4+2=6
3. zeile: "e"+6="e6"

es rechnet aber

1. zeile: "a"+4="a4"
2. zeile: 4+2=42
3. zeile: "e"+42="e42"

wenn ein string addiert wird, kommtn string raus (soweit isses mir klar)
aber warm kommtn string raus wenn man ein integer dazuaddiert?

(thx sonar, so isses mir auch logisch
thx sonar & BPA für die hammerschnellen antworten)

Geändert von Tim.Grocki (15-05-2005 um 17:33 Uhr)
Tim.Grocki ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:47   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Zitat von Tim.Grocki
..
wenn ein string addiert wird, kommtn string raus ...
...und Deine "4" ist ein String, fertig....
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:48   #6 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
schreib bei deinem script dochmal ein

ActionScript:
  1. trace( typeof( _root.y5.y12 ) );
rein.
pokepika ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:57   #7 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 4
ok, die 4 istn string.

Ich hatte mir halt im kopf die regel gebildet das für den typen des Ergebnisses das dazuaddierte maßgebend ist (wenn der ausgangspunkt ein string oder interger sein könnte) und nicht das von dem man ausgeht....

naja, wahr wohl falsch, kommt wohl daher dass ich eigentlich python schreib...(wo das glaubich so ist)

edit:

um keine gerücht in die welt zu setzen in python gibstn sytax error

meine gehirnaktivität liegt irgendwie heute bei 0 sry

Geändert von Tim.Grocki (15-05-2005 um 18:01 Uhr)
Tim.Grocki ist offline   Mit Zitat antworten
Alt 15-05-2005, 17:57   #8 (permalink)
dude
 
Benutzerbild von Seedianer
 
Registriert seit: Apr 2005
Beiträge: 560
dafür gibts ja typisierung.

private var test:Number = 5;

wenn wir schon im OOP bereich sind (was ich schon ziemlich merkwürdig finde bei der frage).
__________________
grüße aus dem sonnigen Weil am Rhein

Seedianer
Seedianer ist offline   Mit Zitat antworten
Alt 15-05-2005, 18:05   #9 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 4
@ Seedianer:

ja des hab ich wohl übersehen (bin ein noob)

thx nomal an dich, weil das macht das ganz as2 doch schon viel nützlicher und ich mach mich jetzt ma dran alle vars zu deklarieren

ich hab mich in meiner verzweiflung auf des actionscript2 ,des da auch in der bereichsbeschreibung drinsteht, gestürzt, naja liegt wohl dran dass ich heut irgendwie nicht leistungsfähig bin

Geändert von Tim.Grocki (15-05-2005 um 18:08 Uhr)
Tim.Grocki ist offline   Mit Zitat antworten
Alt 15-05-2005, 21:43   #10 (permalink)
dude
 
Benutzerbild von Seedianer
 
Registriert seit: Apr 2005
Beiträge: 560
passt schon
__________________
grüße aus dem sonnigen Weil am Rhein

Seedianer
Seedianer 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 22:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele