Actionscript 3 使用id作为变量

Actionscript 3 使用id作为变量,actionscript-3,apache-flex,variables,components,Actionscript 3,Apache Flex,Variables,Components,我将组件id传递给函数,然后将id用作变量 例如,我传递的id是-user_dg 我遇到的问题是当我对变量进行跟踪时-this[dg_id] 我得到-Application0.Canvas662.Canvas878.DataGrid888,当我希望它是-user_dg时 如何输出实际的组件id?基于注释;听起来你把错误的东西传递到函数中;很可能是组件的实例,而不是实际组件的名称 这有点含糊,因为你没有告诉我们你的方法或者你调用它的方式。但是,像这样的事情: public function myF

我将组件id传递给函数,然后将id用作变量

例如,我传递的id是-user_dg

我遇到的问题是当我对变量进行跟踪时-
this[dg_id]

我得到-Application0.Canvas662.Canvas878.DataGrid888,当我希望它是-user_dg时


如何输出实际的组件id?

基于注释;听起来你把错误的东西传递到函数中;很可能是组件的实例,而不是实际组件的名称

这有点含糊,因为你没有告诉我们你的方法或者你调用它的方式。但是,像这样的事情:

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..
将期望组件的实例,而不是实际组件。您可以这样调用此函数:

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..
如果您想传入ID;这是不寻常的,但您可能会这样做:

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..
你可以这样称呼它:

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..

在需要处理的实际实例上使用ID是非常罕见的。需要一个实例可以为将来需要维护此代码的人员提供更好的文档。需要字符串ID需要函数位于ID作为子级的同一组件中;这可能会减少将来的重用或重构机会

你试过这个[dg_id].id吗?我已经有一段时间没有接触到flex了,但可能就是这么简单……哈哈,这就成功了。谢谢