Flashhilfe.de - Flash Community

Boolean Typumwandlung spielt verrückt [Flash 11]

 


AntwortenRegistrieren Seite1  

Dopar#1
Benutzerbild von Dopar
Beiträge: 24
Registriert: Mar 2010

02.11.2011, 20:04

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
Werbung
Beiträge: 0
Registriert: Feb 2016


ashitaka#2
Benutzerbild von ashitaka
Beiträge: 161
Registriert: Apr 2010

03.11.2011, 10:12

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
willie33#3
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

03.11.2011, 10:14

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);
}
Loading comments...
Dopar#4
Benutzerbild von Dopar
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

03.11.2011, 12:09

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 ;)
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#5
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

03.11.2011, 12:28

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);
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de