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