使用id作为变量

时间:2011-12-17 23:37:50

标签: actionscript-3 flex variables components

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

例如我传递的id是 - user_dg

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

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

如何输出实际的组件ID?

1 个答案:

答案 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作为子节点的同一组件中;这可能会减少您将来的重复使用或重构机会。