1&1 Webhosting
Flashhilfe.de - Flash Community

Boolean Typumwandlung spielt verrückt [Flash 11]

Forum > ActionScript 3.0 > Boolean Typumwandlung spielt verrückt

 


AntwortenRegistrieren Seite1  

 02.11.2011, 20:04 
Beiträge: 24
Registriert: Mar 2010

Boolean Typumwandlung spielt verrückt
Hey,

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.
Schlagwörter: AS3, boolean, typ, umwandlung, var
 03.11.2011, 10:12Re1
Benutzerbild von ashitaka
Beiträge: 161
Registriert: Apr 2010

ich mach´s meistens so:

ActionScript:
1<wert>true</wert>



ActionScript:
1if (xml.wert[0].toString() == "true")

bzw.
ActionScript:
1if (xml.wert[0].toString() == "false")



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
Geändert von ashitaka am 03.11.11 um 10:14 Uhr

 03.11.2011, 10:14Re2
Benutzerbild von willie33
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!
 
nicht sichtbar bei eingeloggten Mitgliedern
 03.11.2011, 12:09Re3
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Hab eure beiden Lösungen mal kombiniert, und das hat super funktioniert.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static 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 {
              if (String(src).toString().toLowerCase() == "false"){
                 return false;
              } else {
                 return true;
              }
           }
        }



Vielen vielen Dank ;)
 03.11.2011, 12:28Re4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 2855
Wohnort: Köln
Registriert: Oct 2007

Das:
ActionScript:
1if (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);
}
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de