2011-12-17 171 views
0

我将一个组件ID传递给一个函数,然后使用该ID作为变量。使用ID作为变量

比如我传递id为 - user_dg

问题我已经是当我这样做的变量痕迹 - this[dg_id]

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

我怎样才能输出实际的组件ID?

+3

你试过这个[dg_id] .id吗?自从我在flex上获得了我的双手已经有一段时间了,但它可能是那么简单...... – 2011-12-17 23:41:16

+0

哈哈。谢谢 – Adam 2011-12-18 01:30:37

回答

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为小孩的相同组件中;这可能会减少您未来重用或重构的机会。