Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 获取as3中变量名的字符串表示形式_Actionscript 3_Apache Flex_Actionscript - Fatal编程技术网

Actionscript 3 获取as3中变量名的字符串表示形式

Actionscript 3 获取as3中变量名的字符串表示形式,actionscript-3,apache-flex,actionscript,Actionscript 3,Apache Flex,Actionscript,有没有办法做到这一点是as3 例如,如果我有一个var-dog:String,如何从该变量中提取“dog” 通过思考来做到这一点,但必须有一个更简单的方法 -- A 首先,如果它是自定义类的实例,则可以重写toString()方法 如果它是类的属性,则可以使用此方法- 如果它是一个局部变量,则无法获取该名称 首先,如果它是自定义类的实例,则可以重写toString()方法 如果它是类的属性,则可以使用此方法- 如果它是一个局部变量,则无法获取该名称 在您的示例中,我认为没有办法将“dog”作为

有没有办法做到这一点是as3

例如,如果我有一个
var-dog:String
,如何从该变量中提取“dog”

通过思考来做到这一点,但必须有一个更简单的方法

-- A

  • 首先,如果它是自定义类的实例,则可以重写
    toString()
    方法

  • 如果它是类的属性,则可以使用此方法-

  • 如果它是一个局部变量,则无法获取该名称

      • 首先,如果它是自定义类的实例,则可以重写
        toString()
        方法

      • 如果它是类的属性,则可以使用此方法-

      • 如果它是一个局部变量,则无法获取该名称


      在您的示例中,我认为没有办法将“dog”作为字符串检索

      但是,如果
      dog
      dynamic
      对象的属性,则可以使用如下函数:

      function getVarName(subject:*, value:*):String
      {
          for(var i:String in subject)
          {
              if(subject[i] == value) return i;
          }
      
          return "";
      }
      
      var holder:Object = {
          dog: "some awesome dog"
      }
      
      trace(getVarName(holder, "some awesome dog")); // dog
      
      此功能可以在以下情况下工作:

      function getVarName(subject:*, value:*):String
      {
          for(var i:String in subject)
          {
              if(subject[i] == value) return i;
          }
      
          return "";
      }
      
      var holder:Object = {
          dog: "some awesome dog"
      }
      
      trace(getVarName(holder, "some awesome dog")); // dog
      

      在您的示例中,我认为没有一种方法可以将“dog”作为字符串检索

      但是,如果
      dog
      dynamic
      对象的属性,则可以使用如下函数:

      function getVarName(subject:*, value:*):String
      {
          for(var i:String in subject)
          {
              if(subject[i] == value) return i;
          }
      
          return "";
      }
      
      var holder:Object = {
          dog: "some awesome dog"
      }
      
      trace(getVarName(holder, "some awesome dog")); // dog
      
      此功能可以在以下情况下工作:

      function getVarName(subject:*, value:*):String
      {
          for(var i:String in subject)
          {
              if(subject[i] == value) return i;
          }
      
          return "";
      }
      
      var holder:Object = {
          dog: "some awesome dog"
      }
      
      trace(getVarName(holder, "some awesome dog")); // dog
      

      听起来您不想“获取”变量名的字符串表示形式,而是基于字符串设置变量

      要设置名称为字符串的变量,可以执行以下操作:

      this['dog'] = 'value of the dog var';
      

      听起来您不想“获取”变量名的字符串表示形式,而是基于字符串设置变量

      要设置名称为字符串的变量,可以执行以下操作:

      this['dog'] = 'value of the dog var';
      
      希望这有帮助

      class A {
         var dog:String = "something";
         var cat:String = "eatdog";
      }
      
      function getVars(obj:*):void
      {
          for(var i:* in obj){
              trace( i + " : " + obj[i]);
              // this will trace all properties of object.
              // dog : somthing
              // cat : eatdog
          }
      }
      
      希望这有帮助

      class A {
         var dog:String = "something";
         var cat:String = "eatdog";
      }
      
      function getVars(obj:*):void
      {
          for(var i:* in obj){
              trace( i + " : " + obj[i]);
              // this will trace all properties of object.
              // dog : somthing
              // cat : eatdog
          }
      }
      

      这有意义吗?因为var名称并不重要。如果是,那么您可能应该使用某种对象键/值映射。如果您执行
      var dog:String;变量cat:String=dog它是。。。。我想找到一种将XML节点值自动映射到VO类的公共属性的方法。看起来你问错了问题。如果你问自己想要实现什么,而不是问这样的问题,你可能会运气更好。一个例子可能是“如何将XML节点值自动映射到VO类的公共属性?”现在是一种无反射的方法。这有意义吗?因为var名称并不重要。如果是,那么您可能应该使用某种对象键/值映射。如果您执行
      var dog:String;变量cat:String=dog它是。。。。我想找到一种将XML节点值自动映射到VO类的公共属性的方法。看起来你问错了问题。如果你问自己想要实现什么,而不是问这样的问题,你可能会运气更好。一个例子可能是“如何将XML节点值自动映射到VO类的公共属性?”现在是一种无反射的方法。
      +1
      请注意,除非
      动态的(或具有属性
      dog
      ).
      +1
      请注意,除非
      是动态的(或具有属性
      ),否则此功能无效。