我将组件ID传递给函数,然后将id用作变量。
例如我传递的id是 - user_dg
我遇到的问题是我对变量进行追踪 - this[dg_id]
我得到 - Application0.Canvas662.Canvas878.DataGrid888,当我希望它是 - user_dg
如何输出实际的组件ID?
答案 0 :(得分:1)
根据评论;听起来你把错误的东西传递给了这个函数;很可能是组件的一个实例,而不是实际组件的名称。
这有点模糊,因为你没有向我们展示你调用它的方法或方式。但是,像这样:
public function myFunction(component:UIComponent):void{
trace(component);
trace(component.id);
}
期望组件的实例,而不是实际的组件。您可以这样调用此函数:
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
如果你想传入ID;这可能是不寻常的,但你可能会这样做:
public function myFunction(componentID:String):void{
trace(this[componentID]);
trace(componentID);
}
你可以这样称呼它:
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..
在您需要处理的实际实例上使用ID是非常不寻常的。要求实例为将来需要维护此代码的人提供更好的文档。要求字符串ID需要该函数位于具有ID作为子节点的同一组件中;这可能会减少您将来的重复使用或重构机会。