ich hab ein kleines Problem mit der Typumwandlung. Ich hole mir Daten aus einem XML-File über das XML Object aus ActionScript 3. Der eine Knoten enthält den bool'schen Wert FALSE, welchen ich auch als solchen weiter verwenden möchte.
Weiße ich diesen nun jedoch einer Variable vom Typ Boolean zu, wird bei der Typumwandlung aus dem Wert ein TRUE.
ActionScript:
1 2 3 4 5 6 7 8
var xml = XML([...]);
trace(xml.wert); // gibt false aus
var neueVariable:Boolean = xml.wert;
trace(neueVariable); // gibt true zurück
trace(Boolean(xml.wert)); // gibt true zurück
Ich habe mit dem IS Operator schon probiert raus zu bekommen ob mein xml.wert ein String oder ein Bool'scher Wert ist. Offenbar nichts davon.
Auch folgendes schlägt fehl:
ActionScript:
1 2
var a = String(xml.wert); // gibt false aus
var b = Boolean(a); // gibt true aus
Kann mir jemand helfen? Ich werd hier noch an den simpelsten Problemem völlig verrückt.
edit: zur Info: "false" als String ist als Boolean trotzdem true ;)Zeitleisten-Programmierung ist böse! löst euch von der Zeitleiste -> benutzt Flashdevelop!
Antworten auf Flash AS3 Fragen. Flash Programmierer
Beiträge: 140 Wohnort: Qo'noS Registriert: Nov 2009
Erstell dir einfach eine Helper Funktion die dir den richtigen Boolean zurückgibt.
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public function toBoolean(src:*):Boolean
{
if (src is Boolean)
return src as Boolean;
else if (!isNaN(Number(src)))
if (Number(src) > 0)
return true;
else
return false;
else if (src is String)
if (String(src).toLowerCase() == "false")
return false;
else
return true;
else
return Boolean(src);
}
Check it out: http://as3petoolkit.googlecode.com/ @Vemilyus
Mann, warum drücke ich immer "STRG+S" wenn ich Code im Forum poste???
Bitte keine PNs wenn es Fragen gibt. Dazu ist das Forum da!
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Das:
ActionScript:
1
if (String(src).toString().toLowerCase() == "false"){
kannst du dir sparen, da du doppelt auf einen String Castest und die Bedingung vorher genau den gleichen Zweck erfüllt, wie willie33 gepostet hat!public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}